/* * * Copyright 2004 The Ant-Contrib project * * 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 net.sf.antcontrib.cpptasks; import org.apache.tools.ant.types.DataType; import org.apache.tools.ant.types.Reference; import java.util.Vector; /** * Distributed build information (Non-functional prototype). * */ public final class DistributerDef extends DataType { /** * if property. */ private String ifCond; /** * unless property. */ private String unlessCond; /** * hosts. * */ private String hosts; /** * Protocol. * */ private DistributerProtocolEnum protocol; /** * Not sure what this is. */ private int tcpCork; /** * user name. */ private String user; /** * local to remote file name maps. */ private final Vector maps = new Vector(); /** * Constructor. * */ public DistributerDef() { } /** * Required by documentation generator. */ public void execute() { throw new org.apache.tools.ant.BuildException( "Not an actual task, but looks like one for documentation purposes"); } /** * Returns true if the if and unless conditions (if any) are * satisfied. * @return true if definition is active. */ public boolean isActive() { return CUtil.isActive(getProject(), ifCond, unlessCond); } /** * Sets an id that can be used to reference this element. * * @param id * id */ public void setId(final String id) { // // this is actually accomplished by a different // mechanism, but we can document it // } /** * Sets the property name for the 'if' condition. * * The define will be ignored unless the property is defined. * * The value of the property is insignificant, but values that would imply * misinterpretation ("false", "no") will throw an exception when * evaluated. * * @param propName * property name */ public void setIf(final String propName) { ifCond = propName; } /** * Specifies that this element should behave as if the content of the * element with the matching id attribute was inserted at this location. If * specified, no other attributes should be specified. * @param r reference name */ public void setRefid(final Reference r) { super.setRefid(r); } /** * Set the property name for the 'unless' condition. * * If named property is set, the define will be ignored. * * The value of the property is insignificant, but values that would imply * misinterpretation ("false", "no") of the behavior will throw an * exception when evaluated. * * @param propName * name of property */ public void setUnless(final String propName) { unlessCond = propName; } /** * Gets hosts. * @return hosts, may be null. * */ public String getHosts() { if (isReference()) { DistributerDef refDistributer = (DistributerDef) getCheckedRef(DistributerDef.class, "DistributerDef"); return refDistributer.getHosts(); } return hosts; } /** * Gets tcp cork. * @return TCP_CORK value. * */ public int getTcpcork() { if (isReference()) { DistributerDef refDistributer = (DistributerDef) getCheckedRef(DistributerDef.class, "DistributerDef"); return refDistributer.getTcpcork(); } return tcpCork; } /** * Gets protocol. * @return protocol, may be null. * */ public DistributerProtocolEnum getProtocol() { if (isReference()) { DistributerDef refDistributer = (DistributerDef) getCheckedRef(DistributerDef.class, "DistributerDef"); return refDistributer.getProtocol(); } return protocol; } /** * Sets hosts. * @param value new value */ public void setHosts(final String value) { if (isReference()) { throw tooManyAttributes(); } hosts = value; } /** * Sets TCP_CORK value. * @param value new value */ public void setTcpcork(final int value) { if (isReference()) { throw tooManyAttributes(); } tcpCork = value; } /** * Sets protocol. * @param value new value */ public void setProtocol(final DistributerProtocolEnum value) { if (isReference()) { throw tooManyAttributes(); } protocol = value; } /** * Local to remote filename maps. * @return new map */ public DistributerMap createMap() { DistributerMap map = new DistributerMap(); map.setProject(getProject()); maps.addElement(map); return map; } /** * Sets remote user name. * @param value user name */ public void setUser(final String value) { user = value; } }