001 // Copyright 2005-2006 Ferdinand Prantl <prantl@users.sourceforge.net> 002 // Copyright 2001-2004 The Apache Software Foundation 003 // All rights reserved. 004 // 005 // Licensed under the Apache License, Version 2.0 (the "License"); 006 // you may not use this file except in compliance with the License. 007 // You may obtain a copy of the License at 008 // 009 // http://www.apache.org/licenses/LICENSE-2.0 010 // 011 // Unless required by applicable law or agreed to in writing, software 012 // distributed under the License is distributed on an "AS IS" BASIS, 013 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 // See the License for the specific language governing permissions and 015 // limitations under the License. 016 // 017 // See http://ant-eclipse.sourceforge.net for the most recent version 018 // and more information. 019 020 package prantl.ant.eclipse; 021 022 import org.apache.tools.ant.BuildException; 023 024 /** 025 * Base for the entries under the element classpath, specifically the elements 026 * <tt>classpathentry</tt>. 027 * 028 * @since Ant-Eclipse 1.0 029 * @author Ferdinand Prantl <prantl@users.sourceforge.net> 030 */ 031 public abstract class ClassPathEntryElement { 032 033 private String path = null; 034 035 /** 036 * Creates a new instance of the classpathentry element. 037 * 038 * @since Ant-Eclipse 1.0 039 */ 040 ClassPathEntryElement() { 041 } 042 043 /** 044 * Returns a kind-of-element specific path value or <tt>null</tt> if it has not been 045 * set, which should be considered an error. However, descendant classes may set a 046 * default for this attribute. 047 * 048 * @return A kind-of-element specific path value or <tt>null</tt> if not having been 049 * set (descendant classes may return a default in this case). 050 */ 051 public String getPath() { 052 return path; 053 } 054 055 /** 056 * Sets the path of the classpathentry element. 057 * 058 * @param value 059 * A kind-of-element specific path value. 060 * @since Ant-Eclipse 1.0 061 */ 062 public void setPath(String value) { 063 path = value; 064 } 065 066 /** 067 * Performs the validation of the element at the time when the whole build file was 068 * parsed checking the content of the element and possibly adding mandatory attributes 069 * with default settings. 070 * 071 * @since Ant-Eclipse 1.0 072 */ 073 public void validate() { 074 if (path == null) 075 throw new BuildException( 076 "The mandatory attribute \"path\" was missing in an element under \"classpath\"."); 077 } 078 079 }