- /*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
- package org.apache.tools.ant.taskdefs.optional.dotnet;
-
- import org.apache.tools.ant.BuildException;
-
- import java.io.File;
-
- /**
- * class used by DotnetCompile to name resources, could be upgraded to a datatype
- * in the distant future.
- * a resource maps to /res:file,name
- */
- public class DotnetResource {
-
-
- /**
- * name of resource
- */
- private File file;
-
- /**
- * embed (default) or link the resource
- */
- private boolean embed = true;
-
- /**
- * this is used in VBC and JSC
- */
- private Boolean isPublic = null;
-
- /**
- * name of the object
- */
- private String name = null;
-
- public boolean isEmbed() {
- return embed;
- }
-
- /**
- * embed the resource in the assembly (default, true) or just link to it.
- * @param embed
- */
- public void setEmbed(boolean embed) {
- this.embed = embed;
- }
-
- public File getFile() {
- return file;
- }
-
- /**
- * name the resource
- * @param file
- */
- public void setFile(File file) {
- this.file = file;
- }
-
- public Boolean getPublic() {
- return isPublic;
- }
-
- /**
- * VB and J# only: is a resource public or not?
- * @param aPublic
- */
- public void setPublic(Boolean aPublic) {
- isPublic = aPublic;
- }
-
- public String getName() {
- return name;
- }
-
- /**
- * should the resource have a name?
- * @param name
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * build the C# style parameter (which has no public/private option)
- * @return the built C# style parameter
- */
- public String getCSharpStyleParameter() {
- StringBuffer buffer = new StringBuffer();
- buffer.append(isEmbed() ? "/resource" : "/linkresource");
- buffer.append(':');
- buffer.append(getFile().toString());
- if (getName() != null) {
- buffer.append(',');
- buffer.append(getName());
- }
- if (getPublic() != null) {
- throw new BuildException("This compiler does not support the "
- + "public/private option.");
- }
- return buffer.toString();
- }
-
- /**
- * This method gets the style of param used by VB and javascript
- * @return The style VB parameter being used.
- */
- public String getVbStyleParameter() {
- StringBuffer buffer = new StringBuffer();
- buffer.append(isEmbed() ? "/resource" : "/linkresource");
- buffer.append(':');
- buffer.append(getFile().toString());
- if (getName() != null) {
- buffer.append(',');
- buffer.append(getName());
- if (getPublic() != null) {
- buffer.append(',');
- buffer.append(getPublic().booleanValue()
- ? "public" : "private");
-
- }
- } else if (getPublic() != null) {
- throw new BuildException("You cannot have a public or private "
- + "option without naming the resource");
- }
- return buffer.toString();
- }
- }