Clover coverage report - Code Coverage for hivemind release 1.1-beta-2
Coverage timestamp: Tue Jun 28 2005 10:28:23 EDT
file stats: LOC: 77   Methods: 0
NCLOC: 12   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
Schema.java - - - -
coverage
 1    // Copyright 2004, 2005 The Apache Software Foundation
 2    //
 3    // Licensed under the Apache License, Version 2.0 (the "License");
 4    // you may not use this file except in compliance with the License.
 5    // You may obtain a copy of the License at
 6    //
 7    // http://www.apache.org/licenses/LICENSE-2.0
 8    //
 9    // Unless required by applicable law or agreed to in writing, software
 10    // distributed under the License is distributed on an "AS IS" BASIS,
 11    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12    // See the License for the specific language governing permissions and
 13    // limitations under the License.
 14   
 15    package org.apache.hivemind.schema;
 16   
 17    import java.util.List;
 18   
 19    import org.apache.hivemind.Locatable;
 20    import org.apache.hivemind.internal.Module;
 21    import org.apache.hivemind.parse.AnnotationHolder;
 22   
 23    /**
 24    * An object which may contain a model, used to identify the form of XML content allowed within some
 25    * other, containing element.
 26    * <p>
 27    * This is very much provisional; in the future will be more control for validation (i.e,
 28    * controlling the number of occurances), and support for analogs of W3C SChema sequence and choice.
 29    * The excess flexibility here forces some validation into element objects (the objects created from
 30    * the {@link org.apache.hivemind.schema.Rule}s within the
 31    * {@link org.apache.hivemind.schema.ElementModel}s).
 32    *
 33    * @author Howard Lewis Ship
 34    */
 35    public interface Schema extends AnnotationHolder, Locatable
 36    {
 37    /**
 38    * Returns the (unqualified) id of this schema.
 39    *
 40    * @since 1.1
 41    */
 42    public String getId();
 43   
 44    /**
 45    * Returns a List of {@link ElementModel}, identifing the elements which may be enclosed by the
 46    * modeled element.
 47    * <p>
 48    * The returned list is unmodifiabled and may be empty, but won't be null.
 49    */
 50    public List getElementModel();
 51   
 52    /**
 53    * Returns true if Elements conforming to this Schema can be indexed using a key. For this to be
 54    * true every {@link #getElementModel() top-level ElementModel} must define a non-null
 55    * {@link ElementModel#getKeyAttribute() key attribute}.
 56    *
 57    * @since 1.1
 58    */
 59    public boolean canInstancesBeKeyed();
 60   
 61    /**
 62    * Returns true if the schema is visible to the specified module, false otherwise.
 63    *
 64    * @since 1.1
 65    */
 66    public boolean visibleToModule(String moduleId);
 67   
 68    /**
 69    *
 70    * Return the Module in which the Schema was defined.
 71    *
 72    * @since 1.1
 73    *
 74    */
 75   
 76    public Module getDefiningModule();
 77    }