## org.opengis.feature.type
Interface OperationType

All Superinterfaces:
  PropertyType

    public interface OperationType

extends PropertyType

Operation information, immutable.

This represents a type of operation that can be used to update the state of an AttributeType, this gets more exciting with ComplexAttribtueType (or Feature)

If you come to this from a pure java background this is where we capture the methods in our dynamic model. Since we do not carry implementations here you would do best to think of this as an interface definition.

To implement a method you will need to examine the OperationDescriptor that can put you in touch with actual functionality, often implemented directly in java, or using a scripting language.

The implementation of the operations is against the bound AttributeType "B":

- the descriptor will be able to evaluate against an instance of B and produced a change state or result

Notes:

- TODO: We will need to set up a system for advertising expected exceptions
- if the type isAbstract then the call method is not implemented

Method Summary
`List<AttributeType>` `getParameters()` We need the following AttributeTypes as parameters.
`Set<Filter>` `getRestrictions()` List of restrictions used to limit the allowable returned value.
`AttributeType` `getResult()` Indicates the expected result type, may be `null`.
`OperationType` `getSuper()` Access to super type information.
`AttributeType` `getTarget()` AttributeType this operation type can function against.
`boolean` `isAbstract()` Indicate that this OperationType may not be used directly.

Methods inherited from interface PropertyType
`equals, getDescription, getName, getUserData, hashCode, putUserData`

Method Detail

### getSuper

    OperationType getSuper()

  Access to super type information.

  The super type may contain an implementation based on the additional restrictions to be considered, or a definition of isNilable.

  Specified by:
    `getSuper` in interface `PropertyType`
  Returns:
    AttributeType of supertype

### isAbstract

    boolean isAbstract()

  Indicate that this OperationType may not be used directly.

  This indicates that a sub type will need to actually define the operation meaning here. As an example a graph system could have an Edge that would have "related" operation returning that was abstract, and a sub type road would define "related" based on touches, or "contains" or "common vertex".

  Specified by:
    `isAbstract` in interface `PropertyType`

### getTarget

    AttributeType getTarget()

  AttributeType this operation type can function against.

### getResult

    AttributeType getResult()

  Indicates the expected result type, may be `null`.

  Returns:
    expected result type, may be `null`

### getParameters

    List<AttributeType> getParameters()

  We need the following AttributeTypes as parameters.

  Note we do not need AttributeDescriptors here as parameters are ordered, so name is not needed.

  Returns:
    indicates paramters required for operation

### getRestrictions

    Set<Filter> getRestrictions()

  List of restrictions used to limit the allowable returned value.

  Specified by:
    `getRestrictions` in interface `PropertyType`
  Returns:
    Set<Filter> used to validate allowable values.

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.