opennms得相关源码 请大家看看

源代码在线查看: if.java

软件大小: 33520 K
上传用户: newyearday
关键词: opennms 源码
下载地址: 免注册下载 普通下载 VIP

相关代码

				package org.opennms.ant;								import java.io.File;				import org.apache.tools.ant.*;				import org.apache.tools.ant.taskdefs.*;				import org.apache.tools.ant.util.regexp.*;												public class If extends Task				{        								    protected Task thenCaller;				    protected Task elseCaller;				    				    protected String value;				    protected String eq;				    protected String ne;    				    protected String rePattern;				    protected String negativeRePattern;								    protected String file;				    protected String directory;				    protected String exists;				    protected String canRead;				    protected String canWrite;    												    public void execute() {				        int requiredAttributesCount = 0;				        if( this.value != null )     { requiredAttributesCount++; }				        if( this.file != null )      { requiredAttributesCount++; }        				        if( this.directory != null ) { requiredAttributesCount++; }        				        if( this.exists != null )    { requiredAttributesCount++; }				        if( this.canRead != null )   { requiredAttributesCount++; }        				        if( this.canWrite != null )  { requiredAttributesCount++; }        				        				        if(requiredAttributesCount == 0) {				            throw new BuildException("One attribute from value, isFile, isDirectory, exists, canRead, or canWrite must be set.", this.location);            				        }				        else if(requiredAttributesCount > 1) {				            throw new BuildException("Only one attribute from value, isFile, isDirectory, exists, canRead, and canWrite can be set.", this.location);				        }								        if(this.thenCaller == null ) {				            throw new BuildException("Child then is required.", this.location );				        }       								        boolean conditionValue = false;				        				        if( this.value != null ) {				            conditionValue = this.handleValueConditional();                        				        }				        else if( this.file != null ) {				            File path = new File(this.file);				            conditionValue = path.isFile();				        }				        else if( this.directory != null ) {            				            File path = new File(this.directory);				            conditionValue = path.isDirectory();            				        }				        else if( this.exists != null ) {            				            File path = new File(this.exists);				            conditionValue = path.exists();				        }				        else if( this.canRead != null ) {            				            File path = new File(this.canRead);				            conditionValue = path.canRead();				        }				        else if( this.canWrite != null ) {            				            File path = new File(this.canWrite);				            conditionValue = path.canWrite();				        }				        				        if(conditionValue) {        				            this.thenCaller.execute();				        }				        else if(this.elseCaller != null) {				            this.elseCaller.execute();				        }				    }												    protected boolean handleValueConditional() {				        boolean returnVal = false;				        				        int valueRequiredAttributesCount = 0;				        				        if( this.eq != null ) { valueRequiredAttributesCount++; }				        if( this.ne != null ) { valueRequiredAttributesCount++; }				        if( this.rePattern != null ) { valueRequiredAttributesCount++; }				        if( this.negativeRePattern != null ) { valueRequiredAttributesCount++; }				        				        if( valueRequiredAttributesCount == 0 ) {				            throw new BuildException( "One attribute from eq, ne, regexp, or negativeRegexp is required when using the value attribute." );				        }				        else if( valueRequiredAttributesCount > 1 ) {				            throw new BuildException( "Only one attribute from eq, ne, regexp, and negativeRegexp can be set when using the value attribute." );				        }								        if( this.eq != null ) {				            returnVal = this.value.equals(this.eq);            				        }				        else if( this.ne != null ) {				            returnVal = !this.value.equals(this.ne);                        				        }				        else if( this.rePattern != null ) {				            RegexpMatcher re = (new RegexpMatcherFactory()).newRegexpMatcher();                    				            re.setPattern(this.rePattern);            				            returnVal = re.matches(value);				        }				        else if( this.negativeRePattern != null ) {				            RegexpMatcher re = (new RegexpMatcherFactory()).newRegexpMatcher();                    				            re.setPattern(this.negativeRePattern);            				            returnVal = !re.matches(value);				        }				        				        return( returnVal );        				    }				    				    				    public CallTarget createThen() {				       this.thenCaller = this.createTask("antcall");                   				       return (CallTarget)this.thenCaller;				    }								    				    public CallTarget createElse() {				       this.elseCaller = this.createTask("antcall");            				       return (CallTarget)this.elseCaller;				    }				    								    /** thenCall is an alias for then. */				    public CallTarget createThenCall() {				        return( this.createThen() );				    }								    				    /** elseCall is an alias for else. */				    public CallTarget createElseCall() {				        return( this.createElse() );				    }								    				    public If createThenIf() {				        this.thenCaller = this.createTask("if");				        return (If)this.thenCaller;				    }								    				    public If createElseIf() {				        this.elseCaller = this.createTask("if");				        return (If)this.elseCaller;				    }				 								    public Property createThenProperty() {				        this.thenCaller = this.createTask("property");				        return (Property)this.thenCaller;				    }				    				    				    public Property createElseProperty() {				        this.elseCaller = this.createTask("property");				        return (Property)this.elseCaller;        				    }				    				        				    public void setValue(String value) {				        this.value = value;				    }   								    				    /** Match is an alias for eq. */				    public void setMatch(String eq) {				        this.eq = eq;				    }								    public void setEq(String eq) {				        this.eq = eq;				    }												    public void setNe(String ne) {				        this.ne = ne;				    }				    				    				    public void setRegexp(String rePattern) {				        this.rePattern = rePattern;				    }								    				    public void setNegativeRegexp(String negativeRePattern) {				        this.negativeRePattern = negativeRePattern;				    }				    				    				    public void setIsFile(String file) {				        this.file = file;				    }								    				    public void setIsDirectory(String directory) {				        this.directory = directory;				    }				    				    				    public void setExists(String exists) {				        this.exists = exists;				    }								    				    public void setCanRead(String canRead) {				        this.canRead = canRead;				    }								    				    public void setCanWrite(String canWrite) {				        this.canWrite = canWrite;				    }								    				    protected Task createTask( String name ) {				        Task task = this.project.createTask(name);				        task.setOwningTarget(this.target);				        task.setTaskName(this.getTaskName());				        task.setLocation(this.location);				        task.init();				        				        return( task );				    }				}							

相关资源