aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/StringResource.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/StringResource.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/StringResource.java261
1 files changed, 0 insertions, 261 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/StringResource.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/StringResource.java
deleted file mode 100644
index b12a2e14..00000000
--- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/StringResource.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.types.resources;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.Reference;
-import org.apache.tools.ant.types.Resource;
-
-/**
- * Exposes a string as a Resource.
- * @since Ant 1.7
- */
-public class StringResource extends Resource {
-
- /** Magic number */
- private static final int STRING_MAGIC
- = Resource.getMagicNumber("StringResource".getBytes());
-
- private static final String DEFAULT_ENCODING = "UTF-8";
- private String encoding = DEFAULT_ENCODING;
-
- /**
- * Default constructor.
- */
- public StringResource() {
- }
-
- /**
- * Construct a StringResource with the supplied value.
- * @param value the value of this StringResource.
- */
- public StringResource(String value) {
- this(null, value);
- }
-
- /**
- * Construct a StringResource with the supplied project and value,
- * doing property replacement against the project if non-null.
- * @param project the owning Project.
- * @param value the value of this StringResource.
- */
- public StringResource(Project project, String value) {
- setProject(project);
- setValue(project == null ? value : project.replaceProperties(value));
- }
-
- /**
- * Enforce String immutability.
- * @param s the new name/value for this StringResource.
- */
- public synchronized void setName(String s) {
- if (getName() != null) {
- throw new BuildException(new ImmutableResourceException());
- }
- super.setName(s);
- }
-
- /**
- * The value attribute is a semantically superior alias for the name attribute.
- * @param s the String's value.
- */
- public synchronized void setValue(String s) {
- setName(s);
- }
-
- /**
- * Synchronize access.
- * @return the name/value of this StringResource.
- */
- public synchronized String getName() {
- return super.getName();
- }
-
- /**
- * Get the value of this StringResource, resolving to the root reference if needed.
- * @return the represented String.
- */
- public synchronized String getValue() {
- return getName();
- }
-
- /**
- * The exists attribute tells whether a resource exists.
- *
- * @return true if this resource exists.
- */
- public boolean isExists() {
- return getValue() != null;
- }
-
- /**
- * Add nested text to this resource.
- * Properties will be expanded during this process.
- * @since Ant 1.7.1
- * @param text text to use as the string resource
- */
- public void addText(String text) {
- checkChildrenAllowed();
- setValue(getProject().replaceProperties(text));
- }
-
- /**
- * Set the encoding to be used for this StringResource.
- * @param s the encoding name.
- */
- public synchronized void setEncoding(String s) {
- checkAttributesAllowed();
- encoding = s;
- }
-
- /**
- * Get the encoding used by this StringResource.
- * @return the encoding name.
- */
- public synchronized String getEncoding() {
- return encoding;
- }
-
- /**
- * Get the size of this Resource.
- * @return the size, as a long, 0 if the Resource does not exist (for
- * compatibility with java.io.File), or UNKNOWN_SIZE if not known.
- */
- public synchronized long getSize() {
- return isReference() ? ((Resource) getCheckedRef()).getSize()
- : getContent().length();
- }
-
- /**
- * Get the hash code for this Resource.
- * @return hash code as int.
- */
- public synchronized int hashCode() {
- if (isReference()) {
- return getCheckedRef().hashCode();
- }
- return super.hashCode() * STRING_MAGIC;
- }
-
- /**
- * Get the string. See {@link #getContent()}
- *
- * @return the string contents of the resource.
- * @since Ant 1.7
- */
- public String toString() {
- return String.valueOf(getContent());
- }
-
- /**
- * Get an InputStream for the Resource.
- * @return an InputStream containing this Resource's content.
- * @throws IOException if unable to provide the content of this
- * Resource as a stream.
- * @throws UnsupportedOperationException if InputStreams are not
- * supported for this Resource type.
- */
- public synchronized InputStream getInputStream() throws IOException {
- if (isReference()) {
- return ((Resource) getCheckedRef()).getInputStream();
- }
- String content = getContent();
- if (content == null) {
- throw new IllegalStateException("unset string value");
- }
- return new ByteArrayInputStream(encoding == null
- ? content.getBytes() : content.getBytes(encoding));
- }
-
- /**
- * Get an OutputStream for the Resource.
- * @return an OutputStream to which content can be written.
- * @throws IOException if unable to provide the content of this
- * Resource as a stream.
- * @throws UnsupportedOperationException if OutputStreams are not
- * supported for this Resource type.
- */
- public synchronized OutputStream getOutputStream() throws IOException {
- if (isReference()) {
- return ((Resource) getCheckedRef()).getOutputStream();
- }
- if (getValue() != null) {
- throw new ImmutableResourceException();
- }
- return new StringResourceFilterOutputStream();
- }
-
- /**
- * Overrides the super version.
- * @param r the Reference to set.
- */
- public void setRefid(Reference r) {
- if (encoding != DEFAULT_ENCODING) {
- throw tooManyAttributes();
- }
- super.setRefid(r);
- }
-
- /**
- * Get the content of this StringResource. See {@link #getValue()}
- * @return a String or null if there is no value.
- */
- protected synchronized String getContent() {
- return getValue();
- }
-
- /**
- * This method is only for use by our private helper output stream.
- * It contains specific logic for expanding properties.
- * @param output the output
- */
- private void setValueFromOutputStream(String output) {
- String value;
- if (getProject() != null) {
- value = getProject().replaceProperties(output);
- } else {
- value = output;
- }
- setValue(value);
- }
-
- private class StringResourceFilterOutputStream extends FilterOutputStream {
- private final ByteArrayOutputStream baos;
-
- public StringResourceFilterOutputStream() {
- super(new ByteArrayOutputStream());
- baos = (ByteArrayOutputStream) out;
- }
-
- public void close() throws IOException {
- super.close();
- String result = encoding == null
- ? baos.toString() : baos.toString(encoding);
-
- StringResource.this.setValueFromOutputStream(result);
- }
- }
-}