Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.uima.cas.impl
Class XmiSerializationSharedData

    java.lang.Object
      org.apache.uima.cas.impl.XmiSerializationSharedData

    public class XmiSerializationSharedData

extends Object

A container for data that is shared between the `XmiCasSerializer` and the `XmiCasDeserializer`. This has a number of uses:

- Consistency of xmi:id values across serializations. If you pass an `XmiSerializationSharedData` instance to the deserializer, the deserializer will store information about the incoming xmi:id values. If you then pass the same `XmiSerializationSharedData` object to the serializer when you attempt to serialize the same CAS, all of the incoming FS will be serialized using the same xmi:id value that they had when they were deserialized.
- Support for "out-of-typesystem data". If you call the XMI deserializer with the `lenient` parameter set to true, whenever it encounters an XMI element that doesn't correspond to a type in the type system, it will populate the `XmiSerializationSharedData` with information about these elements. If you then pass the same `XmiSerializationSharedData` object to the serializer when you attempt to serialize the same CAS, these out-of-typesystem FS will be reserialized without loss of information. References between in-typesystem and out-of-typesystem FS (in either direction) are maintained as well.
- After calling the XmiCasSerializer and passing an `XmiSerializationSharedData`, you can call the `getMaxXmiId()` method to get the maximum xmi:id value in the serialized CAS. This feature, along with the consistency of xmi:id values, allows merging multiple XMI documents into a single CAS. See TODO.

Constructor Summary
`XmiSerializationSharedData()`

Method Summary
`void` | `addOutOfTypeSystemArrayElement(int addr, int index, int xmiId)` Records an out-of-typesystem array element in the XmiSerializationSharedData.
`void` | `addOutOfTypeSystemAttribute(int addr, String featName, String featVal)` Records an out-of-typesystem attribute that belongs to an in-typesystem FS.
`void` | `addOutOfTypeSystemChildElements(int addr, String featName, List featVals)` Records out-of-typesystem child elements that belong to an in-typesystem FS.
`void` | `addOutOfTypeSystemElement(org.apache.uima.cas.impl.XmiSerializationSharedData.OotsElementData elemData)` Records information about an XMI element that was not an instance of any type in the type system.
`void` | `addOutOfTypeSystemViewMember(String sofaXmiId, String memberXmiId)` Records that an out-of-typesystem XMI element should be a member of the specified view.
`void` | `clearIdMap()` Clears the ID mapping information that was populated in previous serializations or deserializations.
`int[]` | `getAllFsAddressesInIdMap()` Get all FS Addresses that have been added to the id map.
`int` | `getFsAddrForXmiId(int xmiId)` Gets the FS address that corresponds to the given xmi:id, in the most recent serialization or deserialization.
`int` | `getMaxXmiId()` Gets the maximum xmi:id that has been generated or read so far.
`List` | `getOutOfTypeSystemArrayElements(int addr)` Gets information about out-of-typesystem array elements.
`List` | `getOutOfTypeSystemElements()` Gets a List of `OotsElementData` objects, each of which describes an incoming XMI element that did not correspond to a Type in the TypeSystem.
`org.apache.uima.cas.impl.XmiSerializationSharedData.OotsElementData` | `getOutOfTypeSystemFeatures(int addr)` Gets information about out-of-typesystem features that belong to an in-typesystem FS.
`List` | `getOutOfTypeSystemViewMembers(String sofaXmiId)` Gets a List of xmi:id's (Strings) of all out-of-typesystem XMI elements that are members of the view with the given id.
`String` | `toString()` For debugging purposes only.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### XmiSerializationSharedData

    public XmiSerializationSharedData()

Method Detail

### getMaxXmiId

    public int getMaxXmiId()

  Gets the maximum xmi:id that has been generated or read so far.

  Returns:
    the maximum xmi:id

### getFsAddrForXmiId

    public int getFsAddrForXmiId(int xmiId)

  Gets the FS address that corresponds to the given xmi:id, in the most recent serialization or deserialization.

  Parameters:
    `xmiId` - an xmi:id from the most recent XMI CAS that was serialized or deserialized.
  Returns:
    the FS address of the FeatureStructure corresponding to that xmi:id, -1 if none.

### clearIdMap

    public void clearIdMap()

  Clears the ID mapping information that was populated in previous serializations or deserializations. TODO: maybe a more general reset that resets other things?

### addOutOfTypeSystemElement

    public void addOutOfTypeSystemElement(org.apache.uima.cas.impl.XmiSerializationSharedData.OotsElementData elemData)

  Records information about an XMI element that was not an instance of any type in the type system.

  Parameters:
    `elemData` - information about the out-of-typesystem XMI element

### getOutOfTypeSystemElements

    public List getOutOfTypeSystemElements()

  Gets a List of `OotsElementData` objects, each of which describes an incoming XMI element that did not correspond to a Type in the TypeSystem.

  Returns:
    List of `OotsElementData` objects

### addOutOfTypeSystemViewMember

    public void addOutOfTypeSystemViewMember(String sofaXmiId,
                                             String memberXmiId)

  Records that an out-of-typesystem XMI element should be a member of the specified view.

  Parameters:
    `sofaXmiId` - xmi:id of a Sofa
    `memberXmiId` - xmi:id of an out-of-typesystem element that should be a member of the view for the given Sofa

### getOutOfTypeSystemViewMembers

    public List getOutOfTypeSystemViewMembers(String sofaXmiId)

  Gets a List of xmi:id's (Strings) of all out-of-typesystem XMI elements that are members of the view with the given id.

  Parameters:
    `sofaXmiId` - xmi:id of a Sofa
  Returns:
    List of xmi:id's of members of the view for the given Sofa.

### addOutOfTypeSystemAttribute

    public void addOutOfTypeSystemAttribute(int addr,
                                            String featName,
                                            String featVal)

  Records an out-of-typesystem attribute that belongs to an in-typesystem FS. This will be added to the attributes when that FS is reserialized.

  Parameters:
    `addr` - CAS address of the FS
    `featName` - name of the feature
    `featVal` - value of the feature, as a string

### addOutOfTypeSystemChildElements

    public void addOutOfTypeSystemChildElements(int addr,
                                                String featName,
                                                List featVals)

  Records out-of-typesystem child elements that belong to an in-typesystem FS. These will be added to the child elements when that FS is reserialized.

  Parameters:
    `addr` - CAS address of the FS
    `featName` - name of the feature (element tag name)
    `featVal` - values of the feature, as a List of strings

### getOutOfTypeSystemFeatures

    public org.apache.uima.cas.impl.XmiSerializationSharedData.OotsElementData getOutOfTypeSystemFeatures(int addr)

  Gets information about out-of-typesystem features that belong to an in-typesystem FS.

  Parameters:
    `addr` - CAS address of the FS
  Returns:
    object containing information about out-of-typesystem features (both attributes and child elements)

### getAllFsAddressesInIdMap

    public int[] getAllFsAddressesInIdMap()

  Get all FS Addresses that have been added to the id map.

  Returns:
    an array containing all the FS addresses

### getOutOfTypeSystemArrayElements

    public List getOutOfTypeSystemArrayElements(int addr)

  Gets information about out-of-typesystem array elements.

  Parameters:
    `addr` - the CAS address of an FSArray
  Returns:
    a List of `XmiArrayElement` objects, each of which holds the index and xmi:id of an array element that is a reference to an out-of-typesystem FS.

### addOutOfTypeSystemArrayElement

    public void addOutOfTypeSystemArrayElement(int addr,
                                               int index,
                                               int xmiId)

  Records an out-of-typesystem array element in the XmiSerializationSharedData.

  Parameters:
    `addr` - CAS address of FSArray
    `index` - index into array
    `xmiId` - xmi:id of the out-of-typesystem element that is the value at the given index

### toString

    public String toString()

  For debugging purposes only.

  Overrides:
    `toString` in class `Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2007 The Apache Software Foundation. All Rights Reserved.