Save This Page
Home » jdo2-model-2.3-ea-src » org.apache.jdo.model.java » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    * 
    9    *     http://www.apache.org/licenses/LICENSE-2.0
   10    * 
   11    * Unless required by applicable law or agreed to in writing, software 
   12    * distributed under the License is distributed on an "AS IS" BASIS, 
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
   14    * See the License for the specific language governing permissions and 
   15    * limitations under the License.
   16    */
   17   
   18   package org.apache.jdo.model.java;
   19   
   20   import java.io.InputStream;
   21   
   22   import org.apache.jdo.model.ModelException;
   23   import org.apache.jdo.model.jdo.JDOModel;
   24   
   25   
   26   /** 
   27    * A JavaModel instance bundles a number of JavaType instances and provides
   28    * methods to retrieve JavaType instance by their name. A type name must be
   29    * unique must be unique within a JavaModel instance. If the JavaType
   30    * represents a class or an interface its type name is the fully qualified
   31    * name. The model supports multiple classes or interfaces having the same
   32    * fully qualified name by different JavaModel instances. 
   33    *
   34    * @author Michael Bouschen
   35    * @since JDO 1.0.1
   36    */
   37   public interface JavaModel
   38   {
   39       /** 
   40        * The method returns the JavaType instance for the specified type
   41        * name. A type name is unique within one JavaModel instance. The
   42        * method returns <code>null</code> if this model instance does not
   43        * know a type with the specified name.
   44        * @param name the name of the type
   45        * @return a JavaType instance for the specified name or
   46        * <code>null</code> if not present in this model instance.
   47        */
   48       public JavaType getJavaType(String name);
   49   
   50       /** 
   51        * The method returns the JavaType instance for the type name of the
   52        * specified class object. This is a convenience method for 
   53        * <code>getJavaType(clazz.getName())</code>. The major difference
   54        * between this method and getJavaType taking a type name is that this 
   55        * method is supposed to return a non-<code>null<code> value. The
   56        * specified class object describes an existing type.
   57        * @param clazz the Class instance representing the type
   58        * @return a JavaType instance for the name of the specified class
   59        * object.
   60        */
   61       public JavaType getJavaType(Class clazz);
   62   
   63       /**
   64        * Finds a resource with a given name. A resource is some data that can
   65        * be accessed by class code in a way that is independent of the
   66        * location of the code. The name of a resource is a "/"-separated path
   67        * name that identifies the resource. The method method opens the
   68        * resource for reading and returns an InputStream. It returns 
   69        * <code>null</code> if no resource with this name is found or if the 
   70        * caller doesn't have adequate privileges to get the resource.
   71        * @param resourceName the resource name
   72        * @return an input stream for reading the resource, or <code>null</code> 
   73        * if the resource could not be found or if the caller doesn't have
   74        * adequate privileges to get the resource. 
   75        */
   76       public InputStream getInputStreamForResource(String resourceName);
   77   
   78       /**
   79        * Returns the parent JavaModel instance of this JavaModel.
   80        * @return the parent JavaModel
   81        */
   82       public JavaModel getParent();
   83   
   84       /**
   85        * Set the parent JavaModel for this JavaModel. The method
   86        * automatically adds this JavaModel to the collection of children
   87        * of the specified parent JavaModel.
   88        * @param parent the parent JavaModel
   89        * @exception ModelException if impossible
   90        */
   91       public void setParent(JavaModel parent)
   92           throws ModelException;
   93   
   94       /**
   95        * Returns a collection of child JavaModel instances in the form
   96        * of an array. All instances from the returned array have this
   97        * JavaModel instance as parent.
   98        * @return the child JavaModel instances
   99        */
  100       public JavaModel[] getChildren();
  101   
  102       /**
  103        * Returns the corresponding JDOModel instance.
  104        * @return the corresponding JDOModel.
  105        */
  106       public JDOModel getJDOModel();
  107   
  108       /**
  109        * Sets the corresponding JDOModel instance. 
  110        * @param jdoModel the JDOModel instance
  111        * @exception ModelException if impossible
  112        */
  113       public void setJDOModel(JDOModel jdoModel)
  114           throws ModelException;
  115   
  116   }

Save This Page
Home » jdo2-model-2.3-ea-src » org.apache.jdo.model.java » [javadoc | source]