Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Motivation:

Ben noticed that our use of Name was inconsistent, we need to fix that up.

Contact:

Jody Garnett

Tracker:

http://jira.codehaus.org/browse/GEOT-XXXX

Tagline:

Excerpt

a rose by any other name? type or instance

This page represents the current plan; for discussion please check the tracker link above.

Section
Column
width60%
Table of Contents
Column
Children Display

Description

In the DataAccess super class for DataStore proposal a List<Name> was introduced to DataAccess. It is not clear if these names refer to the content (ie a Descriptor) or to the type (ie FeatureType) - the language used in the javadocs was "names of the available Resources".

This is an aspect of the feature model that was new to the development community and we did not notice this gap until implementation.

Feature Name

Name used to retrieve the content; like an identifier for the data set

Schema Name

Name of the type or schema the content is available in

Unless a datastore is publishing a formal schema defined else where (or has otherwise separated out an information model that they are publishing against) these two names will be the same.

This may be tricky where two tables in a database have the same structure. The table name would show up as the feature name; the description of the structure would be the type name. By sharing a structural description the two tables would be able to reuse Styles definitions.

Status

This proposal is under attack from all sides.

Voting has not started yet:

Tasks

This section is used to make sure your proposal is complete (did you remember documentation?) and has enough paid or volunteer time lined up to be a success

 

no progress

(tick)

done

(error)

impeded

(warning)

lack mandate/funds/time

(question)

volunteer needed

  1. API changed based on BEFORE / AFTER
  2. Update DataAccess interface and AbstractDataStore instances
  3. Add test cases to each datastore module to verify functionality
  4. Update user guide with example code

API Changes

Data Access

BEFORE

Code Block
interface DataAccess<T extends FeatureType, F extends Feature>{
    /**
     * Names of the available Resources.
     * <p>
     * For additional information please see getInfo( Name ) and getSchema( Name ).
     * </p>
     * @return Names of the available contents.
     * @throws IOException
     */
    List<Name> getNames() throws IOException;
        
    /**
     * Description of the named resource.
     * <p>
     * The FeatureType returned describes the contents being published. For
     * additional metadata please review getInfo( Name ).
     * 
     * @param name Type name a the resource from getNames()
     * @return Description of the FeatureType being made avaialble
     * @throws IOException
     */
    T getSchema(Name name) throws IOException;
}

AFTER

Code Block
    /**
     * Names of the available Resources.
     * <p>
     * For additional information please see getDescriptor(Name) and getInfo( Name ).
     * </p>
     * @return Names of the available resources.
     * @throws IOException
     */
    List<Name> getNames() throws IOException;

    /**
     * Description of a named resource.
     * <p>
     * The Descriptor returned describes the contents being published.
     * 
     * @param featureName Name of a resource from getNames()
     * @return Description of the resource being made avaialble
     * @throws IOException
     */
    AttributeDescriptor getDescriptor(Name featureName) throws IOException;
        
    /**
     * Schema of the named resource as a FeatureType.
     * <p>
     * The FeatureType returned describes the content being published. For
     * additional metadata please review getDescriptor( Name ).
     * 
     * @param featureName Name of a resource from getNames()
     * @return Schema of the resource being made avaialble
     * @throws IOException
     */
    T getSchema(Name name) throws IOException;
    ...
}

FeatureSource

BEFORE

Code Block

AFTER

Code Block

FeatureCollection

BEFORE

Code Block

AFTER

Code Block
/** The featureName being published */
Name getName();

Documentation Changes