Merge "Making it easier for cygwin users to run OpenDaylight using run.sh. With this...
authorGiovanni Meo <gmeo@cisco.com>
Fri, 9 May 2014 07:45:34 +0000 (07:45 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Fri, 9 May 2014 07:45:34 +0000 (07:45 +0000)
246 files changed:
opendaylight/commons/opendaylight/pom.xml
opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractDispatcher.java
opendaylight/config/feature/pom.xml [new file with mode: 0644]
opendaylight/config/feature/src/main/resources/features.xml [new file with mode: 0644]
opendaylight/config/netconf-config-dispatcher/pom.xml [new file with mode: 0644]
opendaylight/config/netconf-config-dispatcher/src/main/java/org/opendaylight/controller/config/yang/config/netconf/client/dispatcher/NetconfClientDispatcherModule.java [new file with mode: 0644]
opendaylight/config/netconf-config-dispatcher/src/main/java/org/opendaylight/controller/config/yang/config/netconf/client/dispatcher/NetconfClientDispatcherModuleFactory.java [new file with mode: 0644]
opendaylight/config/netconf-config-dispatcher/src/main/yang/odl-netconf-cfg.yang [new file with mode: 0644]
opendaylight/config/netconf-config-dispatcher/src/main/yang/odl-netconfig-client-cfg.yang [new file with mode: 0644]
opendaylight/config/netty-config-api/src/main/yang/netty.yang
opendaylight/config/pom.xml
opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleFieldSerializer.java
opendaylight/distribution/opendaylight-karaf/pom.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/context.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/00-netty.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/01-md-sal.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/02-clustering.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/03-toaster-sample.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/logback.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/tomcat-logging.properties [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/tomcat-server.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/etc/custom.properties [new file with mode: 0644]
opendaylight/distribution/opendaylight-karaf/src/main/resources/version.properties [new file with mode: 0644]
opendaylight/distribution/opendaylight/pom.xml
opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/01-netconf-connector.xml [new file with mode: 0644]
opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/04-netconf-connector.xml [deleted file]
opendaylight/dummy-console/README [new file with mode: 0644]
opendaylight/dummy-console/pom.xml [new file with mode: 0644]
opendaylight/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandInterpreter.java [new file with mode: 0644]
opendaylight/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandProvider.java [new file with mode: 0644]
opendaylight/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/ForwardingRulesManager.java
opendaylight/md-sal/compatibility/flow-management-compatibility/pom.xml
opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/ConfigurationReader.java [new file with mode: 0644]
opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FRMRuntimeDataProvider.java [new file with mode: 0644]
opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FRMRuntimeDataProvider.xtend [deleted file]
opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowCommitTransaction.java [new file with mode: 0644]
opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.java [new file with mode: 0644]
opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.xtend [deleted file]
opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowManagementReader.java
opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyCommitHandler.java [new file with mode: 0644]
opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyCommitHandler.xtend [deleted file]
opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyProvider.xtend
opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyTransaction.xtend [deleted file]
opendaylight/md-sal/feature/pom.xml [new file with mode: 0644]
opendaylight/md-sal/feature/src/main/resources/features.xml [new file with mode: 0644]
opendaylight/md-sal/inventory-manager/pom.xml
opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.java [new file with mode: 0644]
opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.xtend [deleted file]
opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.java [new file with mode: 0644]
opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.xtend [deleted file]
opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.java [new file with mode: 0644]
opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.xtend [deleted file]
opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/NodeChangeCommiter.java
opendaylight/md-sal/pom.xml
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedTransaction.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingToNormalizedNodeCodec.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBackwardsCompatibleDataBroker.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/SingletonHolder.java
opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/sal/binding/codegen/impl/SingletonHolderTest.java [new file with mode: 0644]
opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/WriteParentListenAugmentTest.java [new file with mode: 0644]
opendaylight/md-sal/sal-binding-it/pom.xml
opendaylight/md-sal/sal-binding-it/src/main/java/org/opendaylight/controller/test/sal/binding/it/TestHelper.java
opendaylight/md-sal/sal-binding-it/src/test/java/org/opendaylight/controller/test/sal/binding/it/AbstractTest.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/SchemaAwareApplyOperation.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/SchemaAwareRpcBroker.java
opendaylight/md-sal/sal-netconf-connector/pom.xml
opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java
opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDevice.java
opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceListener.java
opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfMapping.java
opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfRemoteSchemaSourceProvider.java
opendaylight/md-sal/sal-netconf-connector/src/main/yang/odl-sal-netconf-connector-cfg.yang
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfImpl.xtend
opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/CodecsExceptionsCatchingTest.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-connector/src/test/resources/decoding-exception/yang/number.yang [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/pom.xml [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/DocProvider.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/api/ApiDocService.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocGenerator.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocServiceImpl.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ModelGenerator.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/jaxrs/ApiDocApplication.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/jaxrs/JaxbContextResolver.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/model/builder/OperationBuilder.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Api.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ApiDeclaration.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Operation.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Parameter.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Resource.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ResourceList.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ResponseMessage.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/WEB-INF/web.xml [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/css/highlight.default.css [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/css/screen.css [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/logo_small.png [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/pet_store_api.png [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/throbber.gif [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/wordnik_api.png [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/index.html [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/backbone-min.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/handlebars-1.0.0.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/highlight.7.3.pack.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery-1.8.0.min.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.ba-bbq.min.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.slideto.min.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.wiggle.min.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/shred.bundle.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/shred/content.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/swagger.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/underscore-min.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/swagger-ui.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/swagger-ui.min.js [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/DocGeneratorTest.java [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/test/resources/sample-swagger-spec.json [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/test/resources/toaster.json [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology-good.json [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology-new.json [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology.json [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/test/resources/wadl.xml [new file with mode: 0644]
opendaylight/md-sal/sal-rest-docgen/src/test/resources/yang/toaster.yang [new file with mode: 0644]
opendaylight/md-sal/samples/toaster-it/pom.xml
opendaylight/md-sal/samples/toaster-it/src/test/java/org/opendaylight/controller/sample/toaster/it/ToasterTest.java
opendaylight/md-sal/samples/toaster/pom.xml
opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/FlowStatsTracker.java
opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java
opendaylight/netconf/netconf-client/pom.xml
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClient.java [deleted file]
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientDispatcher.java
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientDispatcherImpl.java [new file with mode: 0644]
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiator.java
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfSshClientDispatcher.java [deleted file]
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/SshClientChannelInitializer.java [new file with mode: 0644]
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/TcpClientChannelInitializer.java [new file with mode: 0644]
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfClientConfiguration.java [new file with mode: 0644]
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfClientConfigurationBuilder.java [new file with mode: 0644]
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfReconnectingClientConfiguration.java [new file with mode: 0644]
opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfReconnectingClientConfigurationBuilder.java [new file with mode: 0644]
opendaylight/netconf/netconf-client/src/test/java/org/opendaylight/controller/netconf/client/test/TestingNetconfClient.java
opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/ConcurrentClientsTest.java
opendaylight/netconf/netconf-it/pom.xml
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/AbstractNetconfConfigTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/HardcodedYangStoreService.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfConfigPersisterITTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITSecureTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfMonitoringITTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/pax/IdentityRefNetconfTest.java
opendaylight/netconf/netconf-mapping-api/src/main/java/org/opendaylight/controller/netconf/mapping/api/HandlingPriority.java
opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/NetconfSSHServer.java
opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/threads/SocketThread.java
opendaylight/netconf/netconf-util/pom.xml
opendaylight/netconf/pom.xml
opendaylight/northbound/connectionmanager/enunciate.xml
opendaylight/northbound/containermanager/enunciate.xml
opendaylight/northbound/controllermanager/enunciate.xml
opendaylight/northbound/controllermanager/src/main/java/org/opendaylight/controller/controllermanager/northbound/ControllerProperties.java
opendaylight/northbound/flowprogrammer/enunciate.xml
opendaylight/northbound/hosttracker/enunciate.xml
opendaylight/northbound/java-client/enunciate.xml
opendaylight/northbound/java-client/pom.xml
opendaylight/northbound/networkconfiguration/bridgedomain/enunciate.xml
opendaylight/northbound/networkconfiguration/neutron/enunciate.xml
opendaylight/northbound/networkconfiguration/neutron/pom.xml
opendaylight/northbound/staticrouting/enunciate.xml
opendaylight/northbound/statistics/enunciate.xml
opendaylight/northbound/subnets/enunciate.xml
opendaylight/northbound/switchmanager/enunciate.xml
opendaylight/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/NodeConnectorProperties.java
opendaylight/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/NodeProperties.java
opendaylight/northbound/topology/enunciate.xml
opendaylight/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/EdgeProperties.java
opendaylight/northbound/usermanager/enunciate.xml
opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/Pool.java
opendaylight/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/internal/SimpleForwardingImpl.java
opendaylight/web/osgi-brandfragment/src/main/resources/META-INF/webconsole.properties
pom.xml
third-party/org.openexi/nagasena-rta/nagasena-rta-0000.0002.0038.0.jar [deleted file]
third-party/org.openexi/nagasena-rta/pom.xml [deleted file]
third-party/org.openexi/nagasena/nagasena-0000.0002.0038.0.jar [deleted file]
third-party/org.openexi/nagasena/pom.xml [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-noframe.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/constant-values.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/deprecated-list.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/help-doc.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/index-all.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/index.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXIDecoder.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXISchemaResolver.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/HeaderOptionsOutputType.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/AlignmentType.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/BinaryDataSource.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EXIOptions.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventDescription.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventType.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/GrammarOptions.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/QName.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-summary.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-tree.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/GrammarCache.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-summary.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-tree.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/BinaryDataSink.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/CharacterBuffer.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/Scanner.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-summary.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-tree.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-summary.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-tree.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/BinaryDataHandler.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/EXIReader.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/ReaderSupport.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/SAXTransmogrifier.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/Transmogrifier.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/TransmogrifierException.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-summary.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-tree.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/Characters.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EXISchema.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EmptySchema.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-summary.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-tree.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactory.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryErrorHandler.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryException.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaReader.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EntityResolverEx.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-summary.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-tree.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/overview-frame.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/overview-summary.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/overview-tree.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/package-list [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/resources/inherit.gif [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/serialized-form.html [deleted file]
third-party/org.openexi/nagasena/src/main/resources/doc/stylesheet.css [deleted file]
third-party/org.openexi/pom.xml [deleted file]

index e0891662ea95b8204e318f5214ccb169de5c0c61..4c545d94c8d6506adcbc191d61f2773e07a3bcd8 100644 (file)
@@ -19,6 +19,7 @@
     <appauth.version>0.4.2-SNAPSHOT</appauth.version>
     <!-- Controller Modules Versions -->
     <arphandler.version>0.5.2-SNAPSHOT</arphandler.version>
+    <asm.version>4.1</asm.version>
     <!-- Plugin Versions -->
     <bouncycastle.version>1.50</bouncycastle.version>
     <bundle.plugin.version>2.3.7</bundle.plugin.version>
     <eclipse.persistence.version>2.5.0</eclipse.persistence.version>
     <!-- enforcer version -->
     <enforcer.version>1.3.1</enforcer.version>
-    <enunciate.version>1.26.2</enunciate.version>
+    <enunciate.version>1.28</enunciate.version>
     <exam.version>3.0.0</exam.version>
 
     <!-- OpenEXI third party lib for netconf-->
-    <exi.nagasena.version>0000.0002.0038.0-SNAPSHOT</exi.nagasena.version>
+    <exi.nagasena.version>0000.0002.0038.0</exi.nagasena.version>
     <failsafe.version>2.15</failsafe.version>
+    <feature.transaction.version>1.0.1</feature.transaction.version>
     <felix.dependencymanager.shell.version>3.0.1</felix.dependencymanager.shell.version>
     <felix.dependencymanager.version>3.1.0</felix.dependencymanager.version>
     <felix.fileinstall.version>3.1.6</felix.fileinstall.version>
@@ -77,7 +79,7 @@
     <ietf-inet-types.version>2010.09.24.4-SNAPSHOT</ietf-inet-types.version>
     <ietf-topology.version>2013.10.21.2-SNAPSHOT</ietf-topology.version>
     <ietf-yang-types.version>2010.09.24.4-SNAPSHOT</ietf-yang-types.version>
-    <jackson.version>2.3.0</jackson.version>
+    <jackson.version>2.3.2</jackson.version>
     <jacoco.version>0.6.2.201302030002</jacoco.version>
     <jar.plugin.version>2.4</jar.plugin.version>
     <java.version.source>1.7</java.version.source>
@@ -92,6 +94,7 @@
     <jsr305.api.version>2.0.1</jsr305.api.version>
     <jsr311.api.version>1.1.1</jsr311.api.version>
     <junit.version>4.8.1</junit.version>
+    <karaf.version>3.0.1</karaf.version>
     <logback.version>1.0.9</logback.version>
     <logging.bridge.version>0.4.2-SNAPSHOT</logging.bridge.version>
     <maven.compile.plugin.version>2.5.1</maven.compile.plugin.version>
     <!-- ODL repository / plugin repository -->
     <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
     <opendaylight-l2-types.version>2013.08.27.4-SNAPSHOT</opendaylight-l2-types.version>
+    <org.json.version>20080701</org.json.version>
     <osgi-brandfragment.web.version>0.0.2-SNAPSHOT</osgi-brandfragment.web.version>
     <osgi.compendium.version>5.0.0</osgi.compendium.version>
     <osgi.core.version>5.0.0</osgi.core.version>
     <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
     <sonar.language>java</sonar.language>
     <sonar.skippedModules>org.openflow.openflowj,net.sf.jung2</sonar.skippedModules>
+    <spifly.version>1.0.0</spifly.version>
     <spring-osgi.version>1.2.1</spring-osgi.version>
+    <spring-security-karaf.version>3.1.4.RELEASE</spring-security-karaf.version>
     <spring-security.version>3.1.3.RELEASE</spring-security.version>
     <spring.version>3.1.3.RELEASE</spring.version>
     <statistics.northbound.version>0.4.2-SNAPSHOT</statistics.northbound.version>
         <artifactId>jackson-databind</artifactId>
         <version>${jackson.version}</version>
       </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-json-org</artifactId>
+        <version>${jackson.version}</version>
+      </dependency>
+
       <dependency>
         <groupId>com.fasterxml.jackson.jaxrs</groupId>
         <artifactId>jackson-jaxrs-base</artifactId>
         <artifactId>jolokia-osgi</artifactId>
         <version>${jolokia.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.json</groupId>
+        <artifactId>json</artifactId>
+        <version>${org.json.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
         <artifactId>appauth</artifactId>
         <artifactId>netconf-client</artifactId>
         <version>${netconf.version}</version>
       </dependency>
+
+      <!--Netconf config-->
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>netconf-config-dispatcher</artifactId>
+        <version>${netconf.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
         <artifactId>netconf-impl</artifactId>
         <artifactId>sal-rest-connector</artifactId>
         <version>${mdsal.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.opendaylight.controller</groupId>
+        <artifactId>sal-rest-docgen</artifactId>
+        <version>${mdsal.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
         <artifactId>sal-restconf-broker</artifactId>
         <artifactId>ganymed</artifactId>
         <version>1.1-SNAPSHOT</version>
       </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>nagasena</artifactId>
-        <version>${exi.nagasena.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>nagasena-rta</artifactId>
-        <version>${exi.nagasena.version}</version>
-      </dependency>
       <!-- Third parties from opendaylight released -->
       <dependency>
         <groupId>org.opendaylight.controller.thirdparty</groupId>
         <artifactId>yang-model-util</artifactId>
         <version>${yangtools.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-parser-api</artifactId>
+        <version>${yangtools.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.opendaylight.yangtools</groupId>
         <artifactId>yang-parser-impl</artifactId>
         <artifactId>yang-ext</artifactId>
         <version>${yang-ext.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.openexi</groupId>
+        <artifactId>nagasena</artifactId>
+        <version>${exi.nagasena.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.openexi</groupId>
+        <artifactId>nagasena-rta</artifactId>
+        <version>${exi.nagasena.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.osgi</groupId>
         <artifactId>org.osgi.compendium</artifactId>
               <artifactId>commons.logback_settings</artifactId>
               <version>0.0.2-SNAPSHOT</version>
             </dependency>
+            <dependency>
+              <groupId>org.codehaus.enunciate</groupId>
+              <artifactId>enunciate-swagger</artifactId>
+              <version>${enunciate.version}</version>
+            </dependency>
           </dependencies>
           <executions>
             <execution>
               <phase>generate-sources</phase>
               <configuration>
                 <sources>
+                  <source>src/main/yang</source>
                   <source>${jmxGeneratorPath}</source>
                   <source>${salGeneratorPath}</source>
                   <source>${xtend.dstdir}</source>
                     </goals>
                   </pluginExecutionFilter>
                   <action>
-                    <ignore></ignore>
+                    <execute></execute>
                   </action>
                 </pluginExecution>
                 <pluginExecution>
index 5e55cddf8e766509336041264dcecd7af06a2932..916ef9a88befa87ac8b5c17902ec6d970f23807d 100644 (file)
@@ -77,9 +77,6 @@ public abstract class AbstractDispatcher<S extends ProtocolSession<?>, L extends
      */
     protected ChannelFuture createServer(final InetSocketAddress address, final PipelineInitializer<S> initializer) {
         final ServerBootstrap b = new ServerBootstrap();
-        b.group(this.bossGroup, this.workerGroup);
-        b.channel(NioServerSocketChannel.class);
-        b.option(ChannelOption.SO_BACKLOG, 128);
         b.childHandler(new ChannelInitializer<SocketChannel>() {
 
             @Override
@@ -87,10 +84,20 @@ public abstract class AbstractDispatcher<S extends ProtocolSession<?>, L extends
                 initializer.initializeChannel(ch, new DefaultPromise<S>(executor));
             }
         });
-        b.childOption(ChannelOption.SO_KEEPALIVE, true);
 
+        b.option(ChannelOption.SO_BACKLOG, 128);
+        b.childOption(ChannelOption.SO_KEEPALIVE, true);
         customizeBootstrap(b);
 
+        if (b.group() == null) {
+            b.group(bossGroup, workerGroup);
+        }
+        try {
+            b.channel(NioServerSocketChannel.class);
+        } catch (IllegalStateException e) {
+            LOG.trace("Not overriding channelFactory on bootstrap {}", b, e);
+        }
+
         // Bind and start to accept incoming connections.
         final ChannelFuture f = b.bind(address);
         LOG.debug("Initiated server {} at {}.", f, address);
diff --git a/opendaylight/config/feature/pom.xml b/opendaylight/config/feature/pom.xml
new file mode 100644 (file)
index 0000000..aaf33cc
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-subsystem</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+  </parent>
+  <artifactId>config-features</artifactId>
+
+  <packaging>pom</packaging>
+
+  <properties>
+    <features.file>features.xml</features.file>
+  </properties>
+
+  <dependencies></dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <filtering>true</filtering>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>filter</id>
+            <goals>
+              <goal>resources</goal>
+            </goals>
+            <phase>generate-resources</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-artifacts</id>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <phase>package</phase>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  <file>${project.build.directory}/classes/${features.file}</file>
+                  <type>xml</type>
+                  <classifier>features</classifier>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
+</project>
diff --git a/opendaylight/config/feature/src/main/resources/features.xml b/opendaylight/config/feature/src/main/resources/features.xml
new file mode 100644 (file)
index 0000000..81972c3
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<features name="config-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
+    <feature name='config-all' version='${project.version}'>
+        <feature version='${project.version}'>odl-config-subsystem</feature>
+    </feature>
+
+    <feature name='odl-config-subsystem' version='${project.version}'>
+        <feature version='${yangtools.version}'>yangtools-concepts</feature>
+        <feature version='${yangtools.version}'>yangtools-binding</feature>
+        <feature version='${yangtools.version}'>yangtools-binding-generator</feature>
+        <feature version='${mdsal.version}'>odl-mdsal-commons</feature>
+        <bundle>mvn:org.opendaylight.controller/config-api/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/config-manager/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/yang-jmx-generator/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/config-persister-api/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/config-persister-file-xml-adapter/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/config-persister-directory-xml-adapter/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/shutdown-api/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/shutdown-impl/${project.version}</bundle>
+        <bundle>mvn:org.osgi/org.osgi.core/${osgi.core.version}</bundle>
+        <bundle>wrap:mvn:com.google.guava/guava/${guava.version}</bundle>
+        <bundle>mvn:org.javassist/javassist/${javassist.version}</bundle>
+    </feature>
+</features>
\ No newline at end of file
diff --git a/opendaylight/config/netconf-config-dispatcher/pom.xml b/opendaylight/config/netconf-config-dispatcher/pom.xml
new file mode 100644 (file)
index 0000000..65ebdaf
--- /dev/null
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>config-plugin-parent</artifactId>
+    <version>0.2.5-SNAPSHOT</version>
+    <relativePath>../config-plugin-parent</relativePath>
+  </parent>
+
+  <artifactId>netconf-config-dispatcher</artifactId>
+  <packaging>bundle</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>config-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-client</artifactId>
+      <version>${netconf.version}</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.opendaylight.controller.config.yang.config.netconf,
+                      org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.netconf.rev140408,</Export-Package>
+            <Import-Package>*</Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yang-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/opendaylight/config/netconf-config-dispatcher/src/main/java/org/opendaylight/controller/config/yang/config/netconf/client/dispatcher/NetconfClientDispatcherModule.java b/opendaylight/config/netconf-config-dispatcher/src/main/java/org/opendaylight/controller/config/yang/config/netconf/client/dispatcher/NetconfClientDispatcherModule.java
new file mode 100644 (file)
index 0000000..344ef3d
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.config.yang.config.netconf.client.dispatcher;
+
+import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
+
+/**
+*
+*/
+public final class NetconfClientDispatcherModule extends org.opendaylight.controller.config.yang.config.netconf.client.dispatcher.AbstractNetconfClientDispatcherModule
+ {
+
+    public NetconfClientDispatcherModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+        super(identifier, dependencyResolver);
+    }
+
+    public NetconfClientDispatcherModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
+            NetconfClientDispatcherModule oldModule, java.lang.AutoCloseable oldInstance) {
+
+        super(identifier, dependencyResolver, oldModule, oldInstance);
+    }
+
+    @Override
+    protected void customValidation(){
+    }
+
+    @Override
+    public java.lang.AutoCloseable createInstance() {
+        return new NetconfClientDispatcherImpl(getBossThreadGroupDependency(), getWorkerThreadGroupDependency(), getTimerDependency());
+    }
+}
diff --git a/opendaylight/config/netconf-config-dispatcher/src/main/java/org/opendaylight/controller/config/yang/config/netconf/client/dispatcher/NetconfClientDispatcherModuleFactory.java b/opendaylight/config/netconf-config-dispatcher/src/main/java/org/opendaylight/controller/config/yang/config/netconf/client/dispatcher/NetconfClientDispatcherModuleFactory.java
new file mode 100644 (file)
index 0000000..cfd4ef6
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.config.yang.config.netconf.client.dispatcher;
+
+/**
+*
+*/
+public class NetconfClientDispatcherModuleFactory extends org.opendaylight.controller.config.yang.config.netconf.client.dispatcher.AbstractNetconfClientDispatcherModuleFactory
+{
+
+
+}
diff --git a/opendaylight/config/netconf-config-dispatcher/src/main/yang/odl-netconf-cfg.yang b/opendaylight/config/netconf-config-dispatcher/src/main/yang/odl-netconf-cfg.yang
new file mode 100644 (file)
index 0000000..16c2bcb
--- /dev/null
@@ -0,0 +1,31 @@
+// vi: set smarttab et sw=4 tabstop=4:
+module odl-netconf-cfg {
+
+    yang-version 1;
+    namespace "urn:opendaylight:params:xml:ns:yang:controller:config:netconf";
+    prefix "cfg-net";
+
+    import config { prefix config; revision-date 2013-04-05; }
+
+    description
+        "This module contains the base YANG definitions for
+        netconf related services.
+
+        Copyright (c)2013 Cisco Systems, Inc. All rights reserved.;
+
+        This program and the accompanying materials are made available
+        under the terms of the Eclipse Public License v1.0 which
+        accompanies this distribution, and is available at
+        http://www.eclipse.org/legal/epl-v10.html";
+
+    revision "2014-04-08" {
+        description
+            "Initial revision.";
+    }
+
+    identity netconf-client-dispatcher {
+
+        base "config:service-type";
+        config:java-class "org.opendaylight.controller.netconf.client.NetconfClientDispatcher";
+    }
+}
\ No newline at end of file
diff --git a/opendaylight/config/netconf-config-dispatcher/src/main/yang/odl-netconfig-client-cfg.yang b/opendaylight/config/netconf-config-dispatcher/src/main/yang/odl-netconfig-client-cfg.yang
new file mode 100644 (file)
index 0000000..e00bdeb
--- /dev/null
@@ -0,0 +1,64 @@
+// vi: set smarttab et sw=4 tabstop=4:
+module odl-netconfig-client-cfg {
+
+    yang-version 1;
+    namespace "urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher";
+    prefix "cfg-net-client";
+
+    import config { prefix config; revision-date 2013-04-05; }
+    import odl-netconf-cfg { prefix cfg-net; revision-date 2014-04-08; }
+    import netty {prefix netty; }
+
+    description
+        "This module contains the base YANG definitions for
+        netconf-client-dispatcher implementation.
+
+        Copyright (c)2013 Cisco Systems, Inc. All rights reserved.;
+
+        This program and the accompanying materials are made available
+        under the terms of the Eclipse Public License v1.0 which
+        accompanies this distribution, and is available at
+        http://www.eclipse.org/legal/epl-v10.html";
+
+    revision "2014-04-08" {
+        description
+            "Initial revision.";
+    }
+
+    identity netconf-client-dispatcher {
+            base config:module-type;
+            config:provided-service cfg-net:netconf-client-dispatcher;
+            config:java-name-prefix NetconfClientDispatcher;
+    }
+
+    augment "/config:modules/config:module/config:configuration" {
+        case netconf-client-dispatcher {
+            when "/config:modules/config:module/config:type = 'netconf-client-dispatcher'";
+
+            container boss-thread-group {
+                uses config:service-ref {
+                    refine type {
+                        config:required-identity netty:netty-threadgroup;
+                    }
+                }
+            }
+
+            container worker-thread-group {
+                uses config:service-ref {
+                    refine type {
+                        config:required-identity netty:netty-threadgroup;
+                    }
+                }
+            }
+
+            container timer {
+                uses config:service-ref {
+                    refine type {
+                        config:required-identity netty:netty-timer;
+                    }
+                }
+            }
+        }
+    }
+
+}
\ No newline at end of file
index 7cac5ad5bc6202265be39f385b8749d61bc77e62..e274b058dccce43045ac6647d9c8775e65ceb78f 100644 (file)
@@ -49,4 +49,12 @@ module netty {
         base "config:service-type";
         config:java-class "io.netty.util.Timer";
     }
-}
\ No newline at end of file
+
+    identity channel-factory {
+        description
+            "Configuration wrapper around netty's channel factory";
+
+        base "config:service-type";
+        config:java-class "io.netty.bootstrap.ChannelFactory";
+    }
+}
index bd2924ad9dffc996cbea58b52d9f5b8ab1377850..9e0aef35f47c93c22d0692fbb173921f94c357fe 100644 (file)
@@ -38,7 +38,9 @@
     <module>yang-test-plugin</module>
     <module>shutdown-api</module>
     <module>shutdown-impl</module>
+    <module>netconf-config-dispatcher</module>
     <module>config-module-archetype</module>
+    <module>feature</module>
   </modules>
 
   <dependencies>
           <artifactId>gmaven-plugin</artifactId>
           <version>1.0</version>
         </plugin>
-        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-maven-plugin</artifactId>
-                    <versionRange>[0.5.7-SNAPSHOT,)</versionRange>
-                    <goals>
-                      <goal>generate-sources</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore></ignore>
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
         <plugin>
           <groupId>org.opendaylight.yangtools</groupId>
           <artifactId>yang-maven-plugin</artifactId>
index c0e3bc1ad84d6ab85b2010149b0286a01e440529..6211efe417973ee0f8faf637669e4f824a1df7f3 100644 (file)
@@ -16,7 +16,7 @@ public class ModuleFieldSerializer {
     public static String toString(ModuleField moduleField) {
         StringBuilder builder = new StringBuilder();
         builder.append("    ");
-        builder.append("protected final "
+        builder.append("public static final "
                 + JmxAttribute.class.getCanonicalName() + " "
                 + moduleField.getName() + "JmxAttribute = new "
                 + JmxAttribute.class.getCanonicalName() + "(\""
diff --git a/opendaylight/distribution/opendaylight-karaf/pom.xml b/opendaylight/distribution/opendaylight-karaf/pom.xml
new file mode 100644 (file)
index 0000000..1414fac
--- /dev/null
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../../commons/opendaylight</relativePath>
+  </parent>
+  <artifactId>distribution.opendaylight-karaf</artifactId>
+  <packaging>pom</packaging>
+  <prerequisites>
+    <maven>3.0</maven>
+  </prerequisites>
+
+  <dependencies>
+    <dependency>
+      <!-- scope is compile so all features (there is only one) are installed
+            into startup.properties and the feature repo itself is not installed -->
+      <groupId>org.apache.karaf.features</groupId>
+      <artifactId>framework</artifactId>
+      <version>${karaf.version}</version>
+      <type>kar</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>config-features</artifactId>
+      <version>${config.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+      <scope>runtime</scope>
+    </dependency>
+    <!-- scope is runtime so the feature repo is listed in the features
+      service config file, and features may be installed using the
+      karaf-maven-plugin configuration -->
+    <!-- dependencies commented out till we can get them in
+    <dependency>
+      <groupId>org.apache.karaf.features</groupId>
+      <artifactId>standard</artifactId>
+      <version>${karaf.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>controller-features</artifactId>
+      <version>${project.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+      <scope>runtime</scope>
+    </dependency>
+  -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>mdsal-features</artifactId>
+      <version>${mdsal.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>features-file</artifactId>
+      <version>${yangtools.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+      <scope>runtime</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>maven-bundle-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>cleanVersions</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>copy</goal>
+                      <goal>unpack</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.karaf.tooling</groupId>
+                    <artifactId>karaf-maven-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>commands-generate-help</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.fusesource.scalate</groupId>
+                    <artifactId>maven-scalate-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>sitegen</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.servicemix.tooling</groupId>
+                    <artifactId>depends-maven-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>generate-depends-file</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.karaf.tooling</groupId>
+        <artifactId>karaf-maven-plugin</artifactId>
+        <version>${karaf.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <!-- no startupFeatures -->
+          <bootFeatures>
+            <feature>standard</feature>
+          </bootFeatures>
+          <!-- no installedFeatures -->
+        </configuration>
+        <executions>
+          <execution>
+            <id>process-resources</id>
+            <goals>
+              <goal>install-kars</goal>
+            </goals>
+            <phase>process-resources</phase>
+          </execution>
+          <execution>
+            <id>package</id>
+            <goals>
+              <goal>instance-create-archive</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${checkstyle.version}</version>
+        <configuration>
+          <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/configuration\/initial\/</excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>2.6</version>
+        <executions>
+          <execution>
+            <id>copy-resources</id>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <!-- here the phase you need -->
+            <phase>process-resources</phase>
+            <configuration>
+              <outputDirectory>${basedir}/target/assembly</outputDirectory>
+              <overwrite>true</overwrite>
+              <resources>
+                <resource>
+                  <directory>${basedir}/src/main/resources</directory>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
+</project>
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/context.xml b/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/context.xml
new file mode 100644 (file)
index 0000000..90b9ddf
--- /dev/null
@@ -0,0 +1 @@
+<Context crossContext="true" sessionCookiePath="/" useHttpOnly="false"/>
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/00-netty.xml b/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/00-netty.xml
new file mode 100644 (file)
index 0000000..2365c70
--- /dev/null
@@ -0,0 +1,60 @@
+<snapshot>
+    <required-capabilities>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty?module=netty&amp;revision=2013-11-19</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor?module=netty-event-executor&amp;revision=2013-11-12</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup?module=threadgroup&amp;revision=2013-11-07</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty:timer?module=netty-timer&amp;revision=2013-11-19</capability>
+    </required-capabilities>
+    <configuration>
+    
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <module>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup">netty:netty-threadgroup-fixed</type>
+                    <name>global-boss-group</name>
+                </module>
+                <module>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup">netty:netty-threadgroup-fixed</type>
+                    <name>global-worker-group</name>
+                </module>
+                <module>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty:timer">netty:netty-hashed-wheel-timer</type>
+                    <name>global-timer</name>
+                </module>
+                <module>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor">netty:netty-global-event-executor</type>
+                    <name>singleton</name>
+                </module>
+            </modules>
+            
+            <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <service>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty">netty:netty-threadgroup</type>
+                    <instance>
+                        <name>global-boss-group</name>
+                        <provider>/modules/module[type='netty-threadgroup-fixed'][name='global-boss-group']</provider>
+                    </instance>
+                    <instance>
+                        <name>global-worker-group</name>
+                        <provider>/modules/module[type='netty-threadgroup-fixed'][name='global-worker-group']</provider>
+                    </instance>
+                </service>
+                <service>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty">netty:netty-event-executor</type>
+                    <instance>
+                        <name>global-event-executor</name>
+                        <provider>/modules/module[type='netty-global-event-executor'][name='singleton']</provider>
+                    </instance>
+                </service>
+                <service>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty">netty:netty-timer</type>
+                    <instance>
+                        <name>global-timer</name>
+                        <provider>/modules/module[type='netty-hashed-wheel-timer'][name='global-timer']</provider>
+                    </instance>
+                </service>
+            </services>
+        </data>
+
+    </configuration>
+</snapshot>
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/01-md-sal.xml b/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/01-md-sal.xml
new file mode 100644 (file)
index 0000000..619ab06
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<snapshot>
+    <configuration>
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:schema-service-singleton</type>
+                    <name>yang-schema-service</name>
+                </module>
+                <!-- To enable use of new in-memory datastore and new implementations
+                     of data brokers, comment out all parts of this
+                     xml which are marked with DATA-BROKER and uncomment all parts
+                     of this xml which are marked with NEW-DATA-BROKER
+                -->
+                <!-- DATA-BROKER start-->
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:hash-map-data-store</type>
+                    <name>hash-map-data-store</name>
+                </module>
+                <!-- DATA BROKER end -->
+                <!-- NEW-DATA-BROKER start -->
+                <!--
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-inmemory-data-broker</type>
+                    <name>async-data-broker</name>
+                    <schema-service>
+                        <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
+                        <name>yang-schema-service</name>
+                    </schema-service>
+                </module>
+                -->
+                <!-- NEW-DATA-BROKER end -->
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-broker-impl</type>
+                    <name>dom-broker</name>
+                    <!-- DATA-BROKER start -->
+                    <data-store xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
+                        <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-data-store</type>
+                        <!-- to switch to the clustered data store, comment out the hash-map-data-store <name> and uncomment the cluster-data-store one -->
+                        <name>hash-map-data-store</name>
+                        <!-- <name>cluster-data-store</name> -->
+                    </data-store>
+                    <!-- DATA-BROKER end -->
+                    <!-- NEW-DATA-BROKER start -->
+                    <!--
+                    <async-data-broker>
+                        <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
+                        <name>async-data-broker</name>
+                    </async-data-broker>
+                    -->
+                    <!-- NEW-DATA-BROKER end -->
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-broker-impl</type>
+                    <name>binding-broker-impl</name>
+                    <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-notification-service</type>
+                        <name>binding-notification-broker</name>
+                    </notification-service>
+                    <data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
+                        <name>binding-data-broker</name>
+                    </data-broker>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:runtime-generated-mapping</type>
+                    <name>runtime-mapping-singleton</name>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-broker</type>
+                    <name>binding-notification-broker</name>
+                </module>
+                <!-- DATA-BROKER start -->
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-data-broker</type>
+                    <name>binding-data-broker</name>
+                    <dom-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
+                        <name>dom-broker</name>
+                    </dom-broker>
+                    <mapping-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
+                        <name>runtime-mapping-singleton</name>
+                    </mapping-service>
+                </module>
+                <!-- DATA-BROKER end -->
+                <!-- NEW-DATA-BROKER start -->
+                <!--
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-data-compatible-broker</type>
+                    <name>binding-data-broker</name>
+                    <dom-async-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
+                        <name>dom-broker</name>
+                    </dom-async-broker>
+                    <binding-mapping-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
+                        <name>runtime-mapping-singleton</name>
+                    </binding-mapping-service>
+                </module>
+                -->
+                <!-- NEW-DATA-BROKER end -->
+            </modules>
+            <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <service>
+                    <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
+                    <instance>
+                        <name>yang-schema-service</name>
+                        <provider>/modules/module[type='schema-service-singleton'][name='yang-schema-service']</provider>
+                    </instance>
+                </service>
+                <service>
+                    <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-notification-service</type>
+                    <instance>
+                        <name>binding-notification-broker</name>
+                        <provider>/modules/module[type='binding-notification-broker'][name='binding-notification-broker']</provider>
+                    </instance>
+                </service>
+                <!-- DATA-BROKER start -->
+                <service>
+                    <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-data-store</type>
+                    <instance>
+                        <name>hash-map-data-store</name>
+                        <provider>/modules/module[type='hash-map-data-store'][name='hash-map-data-store']</provider>
+                    </instance>
+                </service>
+                <!-- DATA-BROKER end -->
+                <!-- NEW-DATA-BROKER start -->
+                <!--
+                <service>
+                    <type  xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
+                    <instance>
+                        <name>async-data-broker</name>
+                        <provider>/modules/module[type='dom-inmemory-data-broker'][name='async-data-broker']</provider>
+                    </instance>
+                </service>
+                -->
+                <!-- NEW-DATA-BROKER end -->
+                <service>
+                    <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-broker-osgi-registry</type>
+                    <instance>
+                        <name>binding-osgi-broker</name>
+                        <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
+                    </instance>
+                </service>
+                <service>
+                    <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
+                    <instance>
+                        <name>binding-rpc-broker</name>
+                        <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
+                    </instance>
+                </service>
+                <service>
+                    <type xmlns:binding-impl="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-impl:binding-dom-mapping-service</type>
+                    <instance>
+                        <name>runtime-mapping-singleton</name>
+                        <provider>/modules/module[type='runtime-generated-mapping'][name='runtime-mapping-singleton']</provider>
+                    </instance>
+                </service>
+                <service>
+                <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
+                    <instance>
+                        <name>dom-broker</name>
+                        <provider>/modules/module[type='dom-broker-impl'][name='dom-broker']</provider>
+                    </instance>
+                </service>
+
+                <service>
+                    <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
+                    <instance>
+                        <name>binding-data-broker</name>
+                        <!--  DATA-BROKER start -->
+                        <provider>/modules/module[type='binding-data-broker'][name='binding-data-broker']</provider>
+                        <!--  DATA-BROKER end -->
+                        <!-- NEW-DATA-BROKER start -->
+                        <!--
+                        <provider>/modules/module[type='binding-data-compatible-broker'][name='binding-data-broker']</provider>
+                        -->
+                        <!--  NEW-DATA-BROKER end -->
+                    </instance>
+                </service>
+
+            </services>
+        </data>
+    </configuration>
+    <required-capabilities>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor?module=netty-event-executor&amp;revision=2013-11-12</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:threadpool?module=threadpool&amp;revision=2013-04-09</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?module=opendaylight-md-sal-dom&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl?module=opendaylight-sal-binding-broker-impl&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl?module=opendaylight-sal-dom-broker-impl&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?module=opendaylight-md-sal-common&amp;revision=2013-10-28</capability>
+    </required-capabilities>
+</snapshot>
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/02-clustering.xml b/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/02-clustering.xml
new file mode 100644 (file)
index 0000000..7853b86
--- /dev/null
@@ -0,0 +1,27 @@
+<snapshot>
+    <configuration>
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <module>
+                   <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">prefix:remote-zeromq-rpc-server</type>
+                   <name>remoter</name>
+                   <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">5666</port>
+                   <dom-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc">
+                       <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
+                       <name>dom-broker</name>
+                   </dom-broker>
+               </module>
+            </modules>
+            <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+            </services>
+        </data>
+    </configuration>
+
+    <required-capabilities>
+       <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?module=opendaylight-md-sal-dom&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl?module=opendaylight-sal-dom-broker-impl&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?module=opendaylight-md-sal-common&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote:rpc?module=odl-sal-dom-rpc-remote-cfg&amp;revision=2013-10-28</capability>
+    </required-capabilities>
+</snapshot>
+
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/03-toaster-sample.xml b/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/initial/03-toaster-sample.xml
new file mode 100644 (file)
index 0000000..c481485
--- /dev/null
@@ -0,0 +1,73 @@
+<snapshot>
+    <configuration>
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
+                        prefix:toaster-provider-impl
+                    </type>
+                    <name>toaster-provider-impl</name>
+
+                    <rpc-registry>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
+                        <name>binding-rpc-broker</name>
+                    </rpc-registry>
+
+                    <notification-service>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
+                            binding:binding-notification-service
+                        </type>
+                        <name>binding-notification-broker</name>
+                    </notification-service>
+                </module>
+
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-consumer:impl">
+                        prefix:toaster-consumer-impl
+                    </type>
+                    <name>toaster-consumer-impl</name>
+
+                    <rpc-registry>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
+                        <name>binding-rpc-broker</name>
+                    </rpc-registry>
+
+                    <notification-service>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
+                            binding:binding-notification-service
+                        </type>
+                        <name>binding-notification-broker</name>
+                    </notification-service>
+                </module>
+            </modules>
+
+            <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <service>
+                    <type xmlns:toaster="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider">toaster:toaster-provider</type>
+                    <instance>
+                        <name>toaster-provider</name>
+                        <provider>/modules/module[type='toaster-provider-impl'][name='toaster-provider-impl']</provider>
+                    </instance>
+                </service>
+                <service>
+                    <type xmlns:toaster="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-consumer">toaster:toaster-consumer</type>
+                    <instance>
+                        <name>toaster-consumer</name>
+                        <provider>/modules/module[type='toaster-consumer-impl'][name='toaster-consumer-impl']</provider>
+                    </instance>
+                </service>
+            </services>
+        </data>
+
+    </configuration>
+
+    <required-capabilities>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:toaster-consumer?module=toaster-consumer&amp;revision=2014-01-31</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:toaster-consumer:impl?module=toaster-consumer-impl&amp;revision=2014-01-31</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider?module=toaster-provider&amp;revision=2014-01-31</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl?module=toaster-provider-impl&amp;revision=2014-01-31</capability>
+    </required-capabilities>
+
+</snapshot>
+
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/logback.xml b/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/logback.xml
new file mode 100644 (file)
index 0000000..d1a5dcc
--- /dev/null
@@ -0,0 +1,97 @@
+ <configuration scan="true">
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{36} - %msg%n</pattern>
+    </encoder>
+  </appender>
+  <appender name="opendaylight.log" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>logs/opendaylight.log</file>
+
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>logs/opendaylight.%d.log.zip</fileNamePattern>
+      <maxHistory>1</maxHistory>
+    </rollingPolicy>
+
+    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>10MB</maxFileSize>
+    </triggeringPolicy>
+
+    <encoder>
+      <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{35} - %msg%n</pattern>
+    </encoder>
+  </appender>
+  <appender name="audit-file" class="ch.qos.logback.core.FileAppender">
+        <file>logs/audit.log</file>
+        <append>true</append>
+        <encoder>
+            <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} %msg %n</pattern>
+        </encoder>
+  </appender>
+  <root level="error">
+    <appender-ref ref="STDOUT" />
+    <appender-ref ref="opendaylight.log" />
+  </root>
+
+  <!--  Base log level  -->
+  <logger name="org.opendaylight" level="INFO"/>
+
+
+  <!-- Controller log level -->
+  <logger name="org.opendaylight.controller" level="INFO"/>
+
+  <!-- OSGi logging bridge -->
+  <logger name="org.opendaylight.controller.logging.bridge" level="WARN"/>
+  <logger name="org.opendaylight.controller.logging.bridge.internal" level="WARN"/>
+
+  <!-- Netty -->
+  <logger name="io.netty" level="WARN"/>
+
+  <!-- Openflow Protocol Plugin -->
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.DiscoveryService" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.InventoryService" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.InventoryServiceShim" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.TopologyServices" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.TopologyServiceShim" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.Controller" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.SwitchHandler" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.SwitchIOSecureService" level="INFO"/>
+  <!-- SAL  -->
+  <logger name="org.opendaylight.controller.sal" level="INFO"/>
+  <logger name="org.opendaylight.controller.sal.implementation" level="INFO"/>
+  <logger name="org.opendaylight.controller.sal.implementation.internal.Inventory" level="INFO"/>
+  <logger name="org.opendaylight.controller.sal.implementation.internal.Topology" level="INFO"/>
+     <!-- remoterpc router and remoterpc routing table -->
+  <logger name="org.opendaylight.controller.sal.connector.remoterpc" level="INFO" />
+  <!-- Functional Modules -->
+  <logger name="org.opendaylight.controller.arphandler" level="INFO"/>
+  <logger name="org.opendaylight.controller.hosttracker" level="INFO"/>
+  <logger name="org.opendaylight.controller.routing" level="INFO"/>
+  <logger name="org.opendaylight.controller.forwardingrulesmanager" level="INFO"/>
+  <logger name="org.opendaylight.controller.forwarding.ipswitch" level="INFO"/>
+  <logger name="org.opendaylight.controller.switchmanager" level="INFO"/>
+  <logger name="org.opendaylight.controller.topologymanager" level="INFO"/>
+  <logger name="org.opendaylight.controller.usermanager" level="INFO"/>
+  <!-- Web modules -->
+  <logger name="org.opendaylight.controller.web" level="INFO"/>
+
+  <!--
+       Unsynchronized controller startup causes models to crop up in random
+       order, which results in temporary inability to fully resolve a model,
+       which is usually resolved. Do not flood console, but keep the messages,
+       as they may be indicating and error.
+  -->
+  <logger name="org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort" level="INFO" additivity="false">
+    <appender-ref ref="opendaylight.log"/>
+  </logger>
+
+  <!-- To debug MD-SAL schema loading issues, uncomment this -->
+  <!--logger name="org.opendaylight.yangtools.yang.parser.impl.util.URLSchemaContextResolver" level="DEBUG"/>
+  <logger name="org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl" level="TRACE"/-->
+
+  <!-- additivity=false ensures analytics data only goes to the analytics log -->
+  <logger name="audit" level="INFO" additivity="false">
+       <appender-ref ref="audit-file"/>
+  </logger>
+</configuration>
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/tomcat-logging.properties b/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/tomcat-logging.properties
new file mode 100644 (file)
index 0000000..3dbd992
--- /dev/null
@@ -0,0 +1,42 @@
+############################################################
+# Configuration file for tomcat logging
+############################################################
+# Handlers:
+# "handlers" specifies a comma separated list of log Handler
+# classes.  These handlers will be installed during VM startup.
+# Note that these classes must be on the system classpath.
+# Following line configures a ConsoleHandler and a FileHandler
+
+handlers= java.util.logging.FileHandler,java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties
+# Describes specific configuration info for Handlers
+# JUL does not support rolling file handler based on date
+# For now we will keep count of files to 5 with rolling size of 10MB
+############################################################
+
+java.util.logging.FileHandler.pattern = logs/tomcat%g.log
+java.util.logging.FileHandler.limit = 104857600
+java.util.logging.FileHandler.count = 5
+java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
+java.util.logging.FileHandler.append = true
+java.util.logging.FileHandler.level = INFO
+
+# Limit the message that are printed on the console to SEVERE and above.
+java.util.logging.ConsoleHandler.level = WARNING
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+# SimpleFormatter output format to print one-line log message like this:
+# <YYYY>-<MM>-<DD> <HH>:<MM>:<SS> <TimeZone> [<SOURCE>] ><LOG_LEVEL> <LOGGER> <MESSAGE> <THROWABLE>
+#
+java.util.logging.SimpleFormatter.format=%1$tF %1$tT %1$tZ [%3$s] %4$s %2$s %5$s%6$s%n
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages
+#org.apache.catalina = SEVERE
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/tomcat-server.xml b/opendaylight/distribution/opendaylight-karaf/src/main/resources/configuration/tomcat-server.xml
new file mode 100644 (file)
index 0000000..f6f923e
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<Server>
+  <!--APR library loader. Documentation at /docs/apr.html -->
+  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
+  <Listener className="org.apache.catalina.core.JasperListener" />
+  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
+  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
+
+  <Service name="Catalina">
+    <Connector port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443" />
+
+<!--
+        Please remove the comments around the following Connector tag to enable HTTPS Authentication support.
+        Remember to add a valid keystore in the configuration folder.
+        More info : http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration
+-->
+
+ <!--
+    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
+               maxThreads="150" scheme="https" secure="true"
+               clientAuth="false" sslProtocol="TLS"
+               keystoreFile="configuration/keystore"
+               keystorePass="changeit"/>
+ -->
+
+    <Engine name="Catalina" defaultHost="localhost">
+      <Host name="localhost" appBase=""
+            unpackWARs="false" autoDeploy="false"
+            deployOnStartup="false" createDirs="false">
+<!--         <Realm className="org.opendaylight.controller.security.ControllerCustomRealm" />
+            <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+ -->
+            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+                        prefix="web_access_log_" suffix=".txt" resolveHosts="false"
+                        rotatable="true" fileDateFormat="yyyy-MM"
+                        pattern="%{yyyy-MM-dd HH:mm:ss.SSS z}t - [%a] - %r"/>
+      </Host>
+    </Engine>
+  </Service>
+</Server>
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/etc/custom.properties b/opendaylight/distribution/opendaylight-karaf/src/main/resources/etc/custom.properties
new file mode 100644 (file)
index 0000000..9a86866
--- /dev/null
@@ -0,0 +1,114 @@
+# Extra packages to import from the boot class loader
+org.osgi.framework.system.packages.extra=sun.reflect,sun.reflect.misc,sun.misc,sun.nio.ch
+
+# https://bugs.eclipse.org/bugs/show_bug.cgi?id=325578
+# Extend the framework to avoid the resources to be presented with
+# a URL of type bundleresource: but to be presented as file:
+osgi.hook.configurators.include=org.eclipse.virgo.kernel.equinox.extensions.hooks.ExtensionsHookConfigurator
+
+# Embedded Tomcat configuration File
+org.eclipse.gemini.web.tomcat.config.path=configuration/tomcat-server.xml
+org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
+
+# Use Equinox as default OSGi Framework Implementation
+karaf.framework=equinox
+
+# Netconf startup configuration
+netconf.tcp.address=127.0.0.1
+netconf.tcp.port=8383
+
+netconf.tcp.client.address=127.0.0.1
+netconf.tcp.client.port=8383
+
+netconf.ssh.address=0.0.0.0
+netconf.ssh.port=1830
+netconf.ssh.pk.path = ./configuration/RSA.pk
+
+
+netconf.config.persister.active=1,2
+# read startup configuration
+netconf.config.persister.1.storageAdapterClass=org.opendaylight.controller.config.persist.storage.directory.xml.XmlDirectoryStorageAdapter
+netconf.config.persister.1.properties.directoryStorage=configuration/initial/
+
+# include only xml files, files with other extensions will be skipped, multiple extensions are permitted e.g. netconf.config.persister.1.properties.includeExtensions=xml,cfg,config
+netconf.config.persister.1.properties.includeExtensions=xml
+netconf.config.persister.1.readonly=true
+
+netconf.config.persister.2.storageAdapterClass=org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter
+netconf.config.persister.2.properties.fileStorage=configuration/current/controller.currentconfig.xml
+netconf.config.persister.2.properties.numberOfBackups=1
+
+# logback configuration
+logback.configurationFile=configuration/logback.xml
+
+# Container configuration
+container.profile = Container
+
+# Connection manager configuration
+connection.scheme = ANY_CONTROLLER_ONE_MASTER
+
+# Open Flow related system parameters
+# TCP port on which the controller is listening (default 6633)
+# of.listenPort=6633
+# IP address of the controller (default: wild card)
+# of.address = 127.0.0.1
+# The time (in milliseconds) the controller will wait for a response after sending a Barrier Request or a Statistic Request message (default 2000 msec)
+# of.messageResponseTimer=2000
+# The switch liveness timeout value (default 60500 msec)
+# of.switchLivenessTimeout=60500
+# The size of the queue holding pending statistics requests (default 64). For large networks of n switches, it is recommended to set the queue size to n
+# of.statsQueueSize = 64
+# The flow statistics polling interval in second (default 10 sec)
+# of.flowStatsPollInterval=10
+# The port statistics polling interval in second (default 5 sec)
+# of.portStatsPollInterval=5
+# The description statistics polling interval in second (default 60 sec)
+# of.descStatsPollInterval=60
+# The table statistics polling interval in second (default 10 sec)
+# of.tableStatsPollInterval=10
+# The maximum number of asynchronous messages can be sent before sending a Barrier Request (default 100)
+# of.barrierMessagePriorCount=100
+# The interval which determines how often the discovery packets should be sent (default 300 sec)
+# of.discoveryInterval=300
+# The timeout multiple of discovery interval
+# of.discoveryTimeoutMultiple=2
+# For newly added ports, allow one more retry if the elapsed time exceeds this threshold (default 30 sec)
+# of.discoveryThreshold=30
+# The maximum number of ports handled in one discovery batch (default 512)
+# of.discoveryBatchMaxPorts=512
+
+# OVSDB configuration
+# ovsdb plugin supports both active and passive connections. It listens on port 6640 by default for Active connections.
+ovsdb.listenPort=6640
+
+# ovsdb creates Openflow nodes/bridges. This configuration configures the bridge's Openflow version.
+# default Openflow version = 1.0, we also support 1.3.
+# ovsdb.of.version=1.3
+
+# TLS configuration
+# To enable TLS, set secureChannelEnabled=true and specify the location of controller Java KeyStore and TrustStore files.
+# The Java KeyStore contains controller's private key and certificate. The Java TrustStore contains the trusted certificate
+# entries, including switches' Certification Authority (CA) certificates. For example,
+# secureChannelEnabled=true
+# controllerKeyStore=./configuration/ctlKeyStore
+# controllerKeyStorePassword=xxxxxxxx (this password should match the password used for KeyStore generation and at least 6 characters)
+# controllerTrustStore=./configuration/ctlTrustStore
+# controllerTrustStorePassword=xxxxxxxx (this password should match the password used for TrustStore generation and at least 6 characters)
+
+secureChannelEnabled=false
+controllerKeyStore=
+controllerKeyStorePassword=
+controllerTrustStore=
+controllerTrustStorePassword=
+
+# User Manager configurations
+enableStrongPasswordCheck = false
+
+#Jolokia configurations
+org.jolokia.listenForHttpService=false
+
+# Logging configuration for Tomcat-JUL logging
+java.util.logging.config.file=configuration/tomcat-logging.properties
+
+#Hosttracker hostsdb key scheme setting
+hosttracker.keyscheme=IP
\ No newline at end of file
diff --git a/opendaylight/distribution/opendaylight-karaf/src/main/resources/version.properties b/opendaylight/distribution/opendaylight-karaf/src/main/resources/version.properties
new file mode 100644 (file)
index 0000000..90af49d
--- /dev/null
@@ -0,0 +1,6 @@
+org.opendaylight.controller.version = 0.1
+org.opendaylight.controller.build.scm.version = ${buildNumber}
+org.opendaylight.controller.build.user = ${env.USER}
+org.opendaylight.controller.build.workspace = **********
+org.opendaylight.controller.build.timestamp = ${timestamp}
+org.opendaylight.controller.build.machine = **********
index f9985cbcc110403a8c60fd6988c170009ed5e996..221866fdd9e75302aed3cd4664dcf1d7d237ae40 100644 (file)
       <artifactId>jackson-databind</artifactId>
     </dependency>
 
+    <dependency>
+      <groupId>com.fasterxml.jackson.datatype</groupId>
+      <artifactId>jackson-datatype-json-org</artifactId>
+    </dependency>
+
     <dependency>
       <groupId>com.fasterxml.jackson.jaxrs</groupId>
       <artifactId>jackson-jaxrs-base</artifactId>
@@ -53,6 +58,7 @@
       <groupId>com.fasterxml.jackson.module</groupId>
       <artifactId>jackson-module-jaxb-annotations</artifactId>
     </dependency>
+
     <dependency>
       <groupId>com.google.code.gson</groupId>
       <artifactId>gson</artifactId>
       <groupId>org.jolokia</groupId>
       <artifactId>jolokia-osgi</artifactId>
     </dependency>
+
+    <dependency>
+      <groupId>org.json</groupId>
+      <artifactId>json</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>appauth</artifactId>
           <groupId>org.opendaylight.controller</groupId>
           <artifactId>netconf-client</artifactId>
         </dependency>
+
+        <!--Netconf config-->
+        <dependency>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>netconf-config-dispatcher</artifactId>
+        </dependency>
         <dependency>
           <groupId>org.opendaylight.controller</groupId>
           <artifactId>netconf-impl</artifactId>
           <groupId>org.opendaylight.controller</groupId>
           <artifactId>sal-rest-connector</artifactId>
         </dependency>
+        <dependency>
+          <groupId>org.opendaylight.controller</groupId>
+          <artifactId>sal-rest-docgen</artifactId>
+        </dependency>
         <dependency>
           <groupId>org.opendaylight.controller</groupId>
           <artifactId>sal-restconf-broker</artifactId>
           <groupId>org.opendaylight.controller.thirdparty</groupId>
           <artifactId>ganymed</artifactId>
         </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.thirdparty</groupId>
-          <artifactId>nagasena</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller.thirdparty</groupId>
-          <artifactId>nagasena-rta</artifactId>
-        </dependency>
         <dependency>
           <groupId>org.opendaylight.yangtools</groupId>
           <artifactId>binding-generator-api</artifactId>
           <artifactId>xtend-lib-osgi</artifactId>
           <version>2.4.3</version>
         </dependency>
+        <dependency>
+          <groupId>org.openexi</groupId>
+          <artifactId>nagasena</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.openexi</groupId>
+          <artifactId>nagasena-rta</artifactId>
+        </dependency>
         <dependency>
           <groupId>org.zeromq</groupId>
           <artifactId>jeromq</artifactId>
diff --git a/opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/01-netconf-connector.xml b/opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/01-netconf-connector.xml
new file mode 100644 (file)
index 0000000..fcbec19
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<snapshot>
+  <configuration>
+    <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+      <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+
+        <!-- Netconf dispatcher to be used by all netconf-connectors --> 
+        <module>
+          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">prefix:netconf-client-dispatcher</type>
+          <name>global-netconf-dispatcher</name>
+          <boss-thread-group xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
+            <name>global-boss-group</name>
+          </boss-thread-group>
+          <worker-thread-group xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
+            <name>global-worker-group</name>
+          </worker-thread-group>
+          <timer xmlns="urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher">
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-timer</type>
+            <name>global-timer</name>
+          </timer>
+        </module>  
+
+        <!-- Loopback connection to netconf server in controller using netconf-connector -->
+        <module>
+          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>
+          <name>controller-config</name>
+          <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">127.0.0.1</address>
+          <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">1830</port>
+          <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</username>
+          <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</password>
+          <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
+          <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
+            <name>global-event-executor</name>
+          </event-executor>
+          <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
+            <name>dom-broker</name>
+          </dom-registry>
+          <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type>
+            <name>global-netconf-dispatcher</name>
+          </client-dispatcher>
+        </module>
+      </modules>
+
+      <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+        <service>
+          <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type>
+          <instance>
+            <name>global-netconf-dispatcher</name>
+            <provider>/modules/module[type='netconf-client-dispatcher'][name='global-netconf-dispatcher']</provider>
+          </instance>
+        </service>
+      </services>
+
+    </data>
+  </configuration>
+  <required-capabilities>
+      <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf?module=odl-sal-netconf-connector-cfg&amp;revision=2013-10-28</capability>
+      <capability>urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher?module=odl-netconfig-client-cfg&amp;revision=2014-04-08</capability>
+  </required-capabilities>
+</snapshot>
diff --git a/opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/04-netconf-connector.xml b/opendaylight/distribution/opendaylight/src/main/resources/configuration/initial/04-netconf-connector.xml
deleted file mode 100644 (file)
index 8143a38..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<snapshot>
-  <configuration>
-    <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-      <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-    <module>
-      <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>
-      <name>controller-config</name>
-      <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">1830</port>
-      <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</username>
-      <worker-thread-group xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
-        <name>global-worker-group</name>
-      </worker-thread-group>
-      <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">127.0.0.1</address>
-      <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
-      <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
-        <name>global-event-executor</name>
-      </event-executor>
-      <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">admin</password>
-      <boss-thread-group xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-threadgroup</type>
-        <name>global-boss-group</name>
-      </boss-thread-group>
-      <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
-        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
-        <name>dom-broker</name>
-      </dom-registry>
-    </module>
-      </modules>
-    </data>
-  </configuration>
-  <required-capabilities>
-      <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf?module=odl-sal-netconf-connector-cfg&amp;revision=2013-10-28</capability>
-  </required-capabilities>
-</snapshot>
diff --git a/opendaylight/dummy-console/README b/opendaylight/dummy-console/README
new file mode 100644 (file)
index 0000000..09974d5
--- /dev/null
@@ -0,0 +1,2 @@
+This bundle is temporary only and should be removed as soon as possible
+it is only for compatibility layer in Karaf.
diff --git a/opendaylight/dummy-console/pom.xml b/opendaylight/dummy-console/pom.xml
new file mode 100644 (file)
index 0000000..68921ab
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.4.2-SNAPSHOT</version>
+    <relativePath>../commons/opendaylight</relativePath>
+  </parent>
+  <artifactId>dummy-console</artifactId>
+  <version>1.1.0-SNAPSHOT</version>
+  <packaging>bundle</packaging>
+  <description>Dummy Console Interfaces for Equinox-specific CLI</description>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>${bundle.plugin.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Import-Package>*</Import-Package>
+            <Export-Package>org.eclipse.osgi.framework.console</Export-Package>
+            <Bundle-Activator></Bundle-Activator>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
+</project>
diff --git a/opendaylight/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandInterpreter.java b/opendaylight/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandInterpreter.java
new file mode 100644 (file)
index 0000000..29e9fc9
--- /dev/null
@@ -0,0 +1,12 @@
+/*
+ * Copyright(c)2014 Inocybe Technologies, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ */
+package org.eclipse.osgi.framework.console;
+
+/** Empty tag interface for Command Interpreter **/
+public interface CommandInterpreter {}
diff --git a/opendaylight/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandProvider.java b/opendaylight/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandProvider.java
new file mode 100644 (file)
index 0000000..a781f6f
--- /dev/null
@@ -0,0 +1,12 @@
+/*
+ * Copyright(c)2014 Inocybe Technologies, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ */
+package org.eclipse.osgi.framework.console;
+
+/** Empty tag interface for Command Provider **/
+public interface CommandProvider {}
index f7b647dd721a1f1f9117d95bc3723867574e5064..46008b24c638241c665a7bde863f0ff5052d587a 100644 (file)
@@ -2342,7 +2342,7 @@ public class ForwardingRulesManager implements
         for (FlowConfig flowConfig : flowConfigForNode) {
             if (doesFlowContainNodeConnector(flowConfig.getFlow(), nodeConnector)) {
                 if (flowConfig.installInHw() && !flowConfig.getStatus().equals(StatusCode.SUCCESS.toString())) {
-                    Status status = this.installFlowEntry(flowConfig.getFlowEntry());
+                    Status status = this.installFlowEntryAsync(flowConfig.getFlowEntry());
                     if (!status.isSuccess()) {
                         flowConfig.setStatus(status.getDescription());
                     } else {
index 93ce0dd4f7161874ec6d7954e4a4729befdec461..7770c153498fe8a4491e81785236d3e2f21d25bd 100644 (file)
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.eclipse.xtend</groupId>
-      <artifactId>org.eclipse.xtend.lib</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>forwardingrulesmanager</artifactId>
           </instructions>
         </configuration>
       </plugin>
-      <plugin>
-        <groupId>org.eclipse.xtend</groupId>
-        <artifactId>xtend-maven-plugin</artifactId>
-      </plugin>
     </plugins>
   </build>
   <scm>
diff --git a/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/ConfigurationReader.java b/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/ConfigurationReader.java
new file mode 100644 (file)
index 0000000..411af28
--- /dev/null
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.md.frm.compatibility;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opendaylight.controller.forwardingrulesmanager.FlowConfig;
+import org.opendaylight.controller.forwardingrulesmanager.IForwardingRulesManager;
+import org.opendaylight.controller.sal.compatibility.NodeMapping;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.Flows;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.FlowsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowKey;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ConfigurationReader implements FlowManagementReader {
+
+    private final static Logger LOG = LoggerFactory.getLogger(ConfigurationReader.class);
+
+    private IForwardingRulesManager manager;
+
+    @Override
+    public Flows readAllFlows() {
+        List<FlowConfig> staticFlows = this.manager.getStaticFlows();
+        List<Flow> flowMap = new ArrayList<Flow>(staticFlows.size());
+
+        for (FlowConfig conf : staticFlows) {
+            flowMap.add(FlowConfigMapping.toConfigurationFlow(conf));
+        }
+        final FlowsBuilder flowsBuilder = new FlowsBuilder();
+        return (flowsBuilder.setFlow(flowMap)).build();
+    }
+
+    @Override
+    public Flow readFlow(final FlowKey key) {
+        try {
+            final FlowConfig flowConf =
+                    this.manager.getStaticFlow(String.valueOf(key.getId()), NodeMapping.toADNode(key.getNode()));
+            return FlowConfigMapping.toConfigurationFlow(flowConf);
+        } catch (Exception e) {
+            String errMsg = MessageFormat.format("readFlow by key {} fail", key);
+            LOG.error(errMsg, e);
+            throw new RuntimeException(errMsg, e);
+        }
+    }
+
+    public IForwardingRulesManager getManager() {
+        return this.manager;
+    }
+
+    public void setManager(final IForwardingRulesManager manager) {
+        this.manager = manager;
+    }
+}
diff --git a/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FRMRuntimeDataProvider.java b/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FRMRuntimeDataProvider.java
new file mode 100644 (file)
index 0000000..be3add1
--- /dev/null
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.md.frm.compatibility;
+
+import java.util.Collections;
+
+import org.opendaylight.controller.forwardingrulesmanager.FlowConfig;
+import org.opendaylight.controller.forwardingrulesmanager.IForwardingRulesManager;
+import org.opendaylight.controller.md.sal.common.api.data.DataChangeListener;
+import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler;
+import org.opendaylight.controller.md.sal.common.api.data.DataModification;
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
+import org.opendaylight.controller.sal.binding.api.data.RuntimeDataProvider;
+import org.opendaylight.controller.sal.common.util.Arguments;
+import org.opendaylight.controller.sal.common.util.Rpcs;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.Flows;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowKey;
+import org.opendaylight.yangtools.concepts.Registration;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.common.RpcError;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+
+public class FRMRuntimeDataProvider implements RuntimeDataProvider, DataCommitHandler<InstanceIdentifier<? extends DataObject>,DataObject> {
+
+    private final static InstanceIdentifier<Flows> FLOWS_PATH = InstanceIdentifier.<Flows> builder(Flows.class).toInstance();
+
+    private final FlowManagementReader configuration = new ConfigurationReader();
+    private DataChangeListener<InstanceIdentifier<? extends DataObject>, DataObject> changeListener;
+    private DataProviderService dataService;
+    private IForwardingRulesManager manager;
+
+    public Registration<DataCommitHandler<InstanceIdentifier<? extends DataObject>, DataObject>> init() {
+        return this.dataService.registerCommitHandler(FRMRuntimeDataProvider.FLOWS_PATH, this);
+    }
+
+    @Override
+    public DataObject readConfigurationData(final InstanceIdentifier<? extends DataObject> path) {
+        return this.readFrom(this.configuration, path);
+    }
+
+    @Override
+    public DataObject readOperationalData(final InstanceIdentifier<? extends DataObject> path) {
+        return this.readFrom(this.configuration, path);
+    }
+
+    public DataObject readFrom(final FlowManagementReader store, final InstanceIdentifier<? extends DataObject> path) {
+        if (Objects.equal(FRMRuntimeDataProvider.FLOWS_PATH, path)) {
+            return store.readAllFlows();
+        }
+        if (FRMRuntimeDataProvider.FLOWS_PATH.contains(path)) {
+            return store.readFlow(this.toFlowKey(path));
+        }
+        return null;
+    }
+
+    @Override
+    public FlowCommitTransaction requestCommit(final DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification) {
+        return new FlowCommitTransaction(this, modification);
+    }
+
+    public FlowKey toFlowKey(final InstanceIdentifier<? extends DataObject> identifier) {
+        Preconditions.<InstanceIdentifier<? extends DataObject>> checkNotNull(identifier);
+
+        Iterable<PathArgument> path = identifier.getPathArguments();
+        PathArgument get = path.iterator().next();
+        final Identifier itemKey = Arguments.<IdentifiableItem> checkInstanceOf(get, IdentifiableItem.class).getKey();
+        return Arguments.<FlowKey> checkInstanceOf(itemKey, FlowKey.class);
+    }
+
+    public RpcResult<Void> finish(final FlowCommitTransaction transaction) {
+        Iterable<FlowConfig> toRemove = transaction.getToRemove();
+        for (final FlowConfig flow : toRemove) {
+            this.manager.removeStaticFlow(flow.getName(), flow.getNode());
+        }
+        Iterable<FlowConfig> toUpdate = transaction.getToUpdate();
+        for (final FlowConfig flow : toUpdate) {
+            this.manager.removeStaticFlow(flow.getName(), flow.getNode());
+            this.manager.addStaticFlow(flow);
+        }
+        return Rpcs.<Void> getRpcResult(true, null, Collections.<RpcError> emptySet());
+    }
+
+    public RpcResult<Void> rollback(final FlowCommitTransaction transaction) {
+        return null;
+    }
+
+    public DataProviderService getDataService() {
+        return this.dataService;
+    }
+
+    public void setDataService(final DataProviderService dataService) {
+        this.dataService = dataService;
+    }
+
+    public DataChangeListener<InstanceIdentifier<? extends DataObject>, DataObject> getChangeListener() {
+        return this.changeListener;
+    }
+
+    public void setChangeListener(final DataChangeListener<InstanceIdentifier<? extends DataObject>, DataObject> changeListener) {
+        this.changeListener = changeListener;
+    }
+
+    public IForwardingRulesManager getManager() {
+        return this.manager;
+    }
+
+    public void setManager(final IForwardingRulesManager manager) {
+        this.manager = manager;
+    }
+}
diff --git a/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FRMRuntimeDataProvider.xtend b/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FRMRuntimeDataProvider.xtend
deleted file mode 100644 (file)
index 2d4e7d2..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.frm.compatibility
-
-import org.opendaylight.controller.sal.binding.api.data.RuntimeDataProvider
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-import org.opendaylight.yangtools.yang.binding.DataObject
-import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler
-import org.opendaylight.controller.md.sal.common.api.data.DataModification
-import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction
-import org.opendaylight.controller.sal.binding.api.data.DataProviderService
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowKey
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.Flow
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.Flows
-import org.opendaylight.controller.md.sal.common.api.data.DataChangeListener
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.FlowsBuilder
-import org.opendaylight.controller.forwardingrulesmanager.IForwardingRulesManager
-import static com.google.common.base.Preconditions.*;
-import static extension org.opendaylight.controller.md.frm.compatibility.FlowConfigMapping.*;
-import static extension org.opendaylight.controller.sal.compatibility.NodeMapping.*;
-import org.opendaylight.controller.sal.common.util.Arguments
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem
-import org.opendaylight.yangtools.yang.common.RpcResult
-import org.opendaylight.controller.forwardingrulesmanager.FlowConfig
-import java.util.HashSet
-import org.opendaylight.controller.sal.common.util.Rpcs
-import java.util.Collections
-import org.opendaylight.yangtools.yang.common.RpcError
-
-class FRMRuntimeDataProvider implements RuntimeDataProvider, DataCommitHandler<InstanceIdentifier<? extends DataObject>, DataObject> {
-
-    static val FLOWS_PATH = InstanceIdentifier.builder(Flows).toInstance;
-
-    @Property
-    var DataProviderService dataService;
-
-    @Property
-    var DataChangeListener changeListener;
-    
-    @Property
-    var IForwardingRulesManager manager;
-
-    FlowManagementReader configuration = new ConfigurationReader();
-
-    def init() {
-        //dataService.registerDataChangeListener(FLOWS_PATH, changeListener);
-        dataService.registerCommitHandler(FLOWS_PATH, this);
-    }
-
-    override readConfigurationData(InstanceIdentifier<? extends DataObject> path) {
-        return readFrom(configuration, path);
-    }
-
-    override DataObject readOperationalData(InstanceIdentifier<? extends DataObject> path) {
-        return readFrom(configuration, path);
-    }
-
-    def DataObject readFrom(FlowManagementReader store, InstanceIdentifier<? extends DataObject> path) {
-        if (FLOWS_PATH == path) {
-            return store.readAllFlows();
-        }
-        if (FLOWS_PATH.contains(path)) {
-            return store.readFlow(path.toFlowKey());
-        }
-        return null;
-    }
-
-    override FlowCommitTransaction requestCommit(
-        DataModification modification) {
-        return new FlowCommitTransaction(this,modification);
-    }
-
-    def toFlowKey(InstanceIdentifier<? extends DataObject> identifier) {
-        checkNotNull(identifier)
-        val item = Arguments.checkInstanceOf(identifier.path.get(1),IdentifiableItem);
-        val key = Arguments.checkInstanceOf(item.key,FlowKey)
-        return key;
-    }
-    
-    def RpcResult<Void> finish(FlowCommitTransaction transaction) {
-        for(flw: transaction.toRemove) {
-            manager.removeStaticFlow(flw.name,flw.node)
-        }
-        
-        for(flw: transaction.toUpdate) {
-            manager.removeStaticFlow(flw.name,flw.node);
-            manager.addStaticFlow(flw);
-        }
-        
-        return Rpcs.<Void>getRpcResult(true,null,Collections.<RpcError>emptySet())
-    }
-    
-    def RpcResult<Void> rollback(FlowCommitTransaction transaction) {
-        // NOOP: We did not changed any state.
-    }
-
-}
-
-class ConfigurationReader implements FlowManagementReader {
-
-    @Property
-    var IForwardingRulesManager manager;
-
-    override Flows readAllFlows() {
-        val it = new FlowsBuilder();
-        flow = manager.staticFlows.map[
-            toConfigurationFlow();
-        ]
-        return it.build();
-    }
-
-    override readFlow(FlowKey key) {
-        val flowCfg = manager.getStaticFlow(String.valueOf(key.id), key.node.toADNode());
-        return flowCfg.toConfigurationFlow;
-    }
-}
-
-public static class FlowCommitTransaction implements DataCommitTransaction<InstanceIdentifier<? extends DataObject>, DataObject> {
-
-    @Property
-    val DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification;
-
-    @Property
-    val FRMRuntimeDataProvider flowManager;
-    
-    @Property
-    val toAdd = new HashSet<FlowConfig>();
-    
-    @Property
-    var Iterable<FlowConfig> toUpdate
-    
-    @Property
-    var Iterable<FlowConfig> toRemove
-    
-
-    new(FRMRuntimeDataProvider flowManager,DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification) {
-        super();
-        _flowManager = flowManager;
-        _modification = modification;
-        processModification();
-    }
-
-    override finish() throws IllegalStateException {
-        return flowManager.finish(this);
-    }
-
-    override rollback() throws IllegalStateException
-{
-        return flowManager.rollback(this);
-    }
-
-    def processModification() {
-        val updated = modification.updatedConfigurationData.entrySet;
-        
-        val _toUpdate = updated.filter[key.isFlowPath].map[
-             return (value as Flow).toFlowConfig
-        ]
-        toUpdate = _toUpdate as Iterable<FlowConfig>
-        
-        
-        val _toRemove = modification.removedConfigurationData.filter[isFlowPath].map[
-             toFlowConfig
-        ]
-        toRemove = _toRemove as Iterable<FlowConfig>
-        
-    }
-}
diff --git a/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowCommitTransaction.java b/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowCommitTransaction.java
new file mode 100644 (file)
index 0000000..bf0050d
--- /dev/null
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.md.frm.compatibility;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.opendaylight.controller.forwardingrulesmanager.FlowConfig;
+import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.DataModification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.Flow;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+
+public class FlowCommitTransaction implements DataCommitTransaction<InstanceIdentifier<? extends DataObject>, DataObject> {
+
+    private final DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification;
+    private final HashSet<FlowConfig> toAdd = new HashSet<FlowConfig>();
+    private final FRMRuntimeDataProvider flowManager;
+    private Iterable<FlowConfig> toUpdate;
+    private Iterable<FlowConfig> toRemove;
+
+    public FlowCommitTransaction(
+            final FRMRuntimeDataProvider flowManager,
+            final DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification) {
+        this.flowManager = flowManager;
+        this.modification = modification;
+        this.processModification();
+    }
+
+    @Override
+    public RpcResult<Void> finish() throws IllegalStateException {
+        return this.flowManager.finish(this);
+    }
+
+    @Override
+    public RpcResult<Void> rollback() throws IllegalStateException {
+        return this.flowManager.rollback(this);
+    }
+
+    public void processModification() {
+        final Set<Entry<InstanceIdentifier<? extends DataObject>, DataObject>> updated =
+                this.modification.getUpdatedConfigurationData().entrySet();
+        final List<FlowConfig> forUpdate = new ArrayList<FlowConfig>(updated.size());
+
+        if (updated != null && !(updated.isEmpty())) {
+            for (Entry<InstanceIdentifier<? extends DataObject>, DataObject> entry : updated) {
+                if (FlowConfigMapping.isFlowPath(entry.getKey())) {
+                    forUpdate.add(FlowConfigMapping.toFlowConfig((Flow) entry.getValue()));
+                }
+            }
+        }
+        this.toUpdate = Collections.unmodifiableCollection(forUpdate);
+
+        final Set<InstanceIdentifier<? extends DataObject>> removedConfigurationData =
+                this.modification.getRemovedConfigurationData();
+        final List<FlowConfig> forRemove = new ArrayList<FlowConfig>(removedConfigurationData.size());
+
+        if (removedConfigurationData != null && !(removedConfigurationData.isEmpty())) {
+            for (InstanceIdentifier<? extends DataObject> data : removedConfigurationData) {
+                if (FlowConfigMapping.isFlowPath(data)) {
+                    forRemove.add(FlowConfigMapping.toFlowConfig(data));
+                }
+            }
+        }
+        this.toRemove = Collections.unmodifiableCollection(forRemove);
+    }
+
+    @Override
+    public DataModification<InstanceIdentifier<? extends DataObject>, DataObject> getModification() {
+        return this.modification;
+    }
+
+    public FRMRuntimeDataProvider getFlowManager() {
+        return this.flowManager;
+    }
+
+    public HashSet<FlowConfig> getToAdd() {
+        return this.toAdd;
+    }
+
+    public Iterable<FlowConfig> getToUpdate() {
+        return this.toUpdate;
+    }
+
+    public Iterable<FlowConfig> getToRemove() {
+        return this.toRemove;
+    }
+}
diff --git a/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.java b/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.java
new file mode 100644 (file)
index 0000000..58c60ec
--- /dev/null
@@ -0,0 +1,109 @@
+/**
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.md.frm.compatibility;
+
+import java.text.MessageFormat;
+import java.util.Iterator;
+
+import org.opendaylight.controller.forwardingrulesmanager.FlowConfig;
+import org.opendaylight.controller.sal.compatibility.MDFlowMapping;
+import org.opendaylight.controller.sal.compatibility.NodeMapping;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowAdded;
+import org.opendaylight.yangtools.yang.binding.Identifiable;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FlowConfigMapping {
+
+    private final static Logger LOG = LoggerFactory.getLogger(FlowConfigMapping.class);
+
+    /* nodes/node/flow  -> 0 / 1 / 2  */
+    private static final int FLOW_KEY_IDENTIFIER_DEEP = 2;
+
+    public static Flow toConfigurationFlow(final FlowConfig sourceCfg) {
+        final FlowAdded source = MDFlowMapping.flowAdded(sourceCfg.getFlow());
+        final FlowBuilder flowBuilder = new FlowBuilder();
+        flowBuilder.setInstructions(source.getInstructions());
+        flowBuilder.setCookie(source.getCookie());
+        flowBuilder.setHardTimeout(source.getHardTimeout());
+        flowBuilder.setIdleTimeout(source.getIdleTimeout());
+        flowBuilder.setMatch(source.getMatch());
+        flowBuilder.setNode(source.getNode());
+
+        FlowKey flowKey =
+                new FlowKey(Long.valueOf(sourceCfg.getName()), flowBuilder.getNode());
+        flowBuilder.setKey(flowKey);
+        return flowBuilder.build();
+    }
+
+    public static FlowConfig toFlowConfig(final Flow sourceCfg) {
+        try {
+            final FlowConfig flowConfig = new FlowConfig();
+            flowConfig.setName(String.valueOf(sourceCfg.getId()));
+            flowConfig.setNode(NodeMapping.toADNode(sourceCfg.getNode()));
+            return flowConfig;
+        } catch (Exception e) {
+            String errMsg = MessageFormat.format("Convert from Flow {} to FlowConfig fail", sourceCfg);
+            LOG.error(errMsg, e);
+            throw new RuntimeException(errMsg, e);
+        }
+    }
+
+    public static FlowConfig toFlowConfig(final InstanceIdentifier<? extends Object> identifier) {
+        try {
+            PathArgument pathArg = FlowConfigMapping.getSecondPathArgumentFromPath(identifier);
+            if (pathArg != null) {
+                final FlowConfig flowConfig = new FlowConfig();
+                FlowKey key = ((IdentifiableItem<Flow, FlowKey>) pathArg).getKey();
+                flowConfig.setName(String.valueOf(key.getId()));
+                flowConfig.setNode(NodeMapping.toADNode(key.getNode()));
+                return flowConfig;
+            }
+            return null;
+        } catch (Exception e) {
+            String errMsg = MessageFormat.format("Convert from InstanceIdentifier {} to FlowConfig fail", identifier);
+            LOG.error(errMsg, e);
+            throw new RuntimeException(errMsg, e);
+        }
+    }
+
+    public static boolean isFlowPath(final InstanceIdentifier<? extends Object> path) {
+        PathArgument pathArg = FlowConfigMapping.getSecondPathArgumentFromPath(path);
+        if (pathArg == null) {
+            return false;
+        }
+        if (pathArg instanceof IdentifiableItem<?,?>) {
+            final Identifiable<?> key = ((IdentifiableItem<?, ? extends Identifiable<?>>) pathArg).getKey();
+            if ((key instanceof FlowKey)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static PathArgument getSecondPathArgumentFromPath(final InstanceIdentifier<? extends Object> path) {
+        if (path != null && path.getPathArguments() != null) {
+            Iterator<PathArgument> iterator = path.getPathArguments().iterator();
+            int deep = 0;
+            while (iterator.hasNext()) {
+                PathArgument pathArg = iterator.next();
+                if (deep == FlowConfigMapping.FLOW_KEY_IDENTIFIER_DEEP) {
+                    return pathArg;
+                }
+                deep++;
+            }
+        }
+        return null;
+    }
+}
diff --git a/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.xtend b/opendaylight/md-sal/compatibility/flow-management-compatibility/src/main/java/org/opendaylight/controller/md/frm/compatibility/FlowConfigMapping.xtend
deleted file mode 100644 (file)
index e15b3c6..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.frm.compatibility
-
-import org.opendaylight.controller.forwardingrulesmanager.FlowConfig
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowBuilder
-
-import static extension org.opendaylight.controller.sal.compatibility.NodeMapping.*
-import static org.opendaylight.controller.sal.compatibility.MDFlowMapping.*
-import static org.opendaylight.controller.sal.compatibility.ToSalConversionsUtils.*
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.FlowKey
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.config.rev130819.flows.Flow
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem
-import org.opendaylight.yangtools.yang.binding.Identifiable
-
-class FlowConfigMapping {
-
-    static def toConfigurationFlow(FlowConfig sourceCfg) {
-        val source = flowAdded(sourceCfg.flow);
-        val it = new FlowBuilder();
-        instructions = source.instructions;
-        cookie = source.cookie;
-        hardTimeout = source.hardTimeout
-        idleTimeout = source.idleTimeout
-        match = source.match
-        node = source.node
-        key = new FlowKey(Long.parseLong(sourceCfg.name),node);
-        return it.build();
-    }
-
-    static def toFlowConfig(Flow sourceCfg) {
-        val it = new FlowConfig;
-        name = String.valueOf(sourceCfg.id);
-        node = sourceCfg.node.toADNode();
-
-        return it
-    }
-
-    static def toFlowConfig(InstanceIdentifier<?> identifier) {
-        val it = new FlowConfig()
-        val FlowKey key = ((identifier.path.get(2) as IdentifiableItem<Flow,FlowKey>).key)
-        name = String.valueOf(key.id);
-        node = key.node.toADNode();
-
-        return it;
-    }
-
-    static def boolean isFlowPath(InstanceIdentifier<?> path) {
-        if(path.path.size < 2) return false;
-        if (path.path.get(2) instanceof IdentifiableItem<?,?>) {
-            val IdentifiableItem<?,? extends Identifiable<?>> item = path.path.get(2) as IdentifiableItem<?,? extends Identifiable<?>>;
-            val Identifiable<?> key = item.key;
-            if (key instanceof FlowKey) {
-                return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyCommitHandler.java b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyCommitHandler.java
new file mode 100644 (file)
index 0000000..e798b68
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.compatibility.topology;
+
+import static org.opendaylight.controller.sal.compatibility.topology.TopologyMapping.toAdEdge;
+import static org.opendaylight.controller.sal.compatibility.topology.TopologyMapping.toTopoEdgeUpdate;
+
+import java.util.Map.Entry;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader;
+import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
+import org.opendaylight.controller.sal.binding.api.data.DataChangeListener;
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
+import org.opendaylight.controller.sal.core.UpdateType;
+import org.opendaylight.controller.sal.topology.IPluginOutTopologyService;
+import org.opendaylight.controller.sal.topology.TopoEdgeUpdate;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TopologyCommitHandler implements DataChangeListener {
+    private static final Logger LOG = LoggerFactory.getLogger(TopologyCommitHandler.class);
+
+    private IPluginOutTopologyService topologyPublisher;
+
+    private final DataProviderService dataService;
+
+    public TopologyCommitHandler(final DataProviderService dataService, final IPluginOutTopologyService topologyPub) {
+        this.topologyPublisher = topologyPub;
+        this.dataService = dataService;
+    }
+
+    @Override
+    public void onDataChanged(final DataChangeEvent<InstanceIdentifier<?>, DataObject> modification) {
+        CopyOnWriteArrayList<TopoEdgeUpdate> msg = new CopyOnWriteArrayList<TopoEdgeUpdate>();
+        try {
+            TypeSafeDataReader reader = TypeSafeDataReader.forReader(dataService);
+            InstanceIdentifier<Topology> topologyPath = InstanceIdentifier.builder(NetworkTopology.class)
+                    .child(Topology.class, new TopologyKey(new TopologyId("flow:1"))).build();
+            Topology topology = reader.readOperationalData(topologyPath);
+
+            for (Entry<InstanceIdentifier<? extends DataObject>, DataObject> entry : modification
+                    .getCreatedOperationalData().entrySet()) {
+                if (entry.getValue() instanceof Link
+                        && modification.getCreatedOperationalData().containsKey(entry.getKey())) {
+                    msg.add(toTopoEdgeUpdate(toAdEdge((Link) entry.getValue(), topology), UpdateType.ADDED, reader));
+                }
+            }
+
+            for (Entry<InstanceIdentifier<? extends DataObject>, DataObject> entry : modification
+                    .getUpdatedOperationalData().entrySet()) {
+                if (entry.getValue() instanceof Link) {
+                    msg.add(toTopoEdgeUpdate(toAdEdge((Link) entry.getValue(), topology), UpdateType.CHANGED, reader));
+                }
+            }
+            for (InstanceIdentifier<? extends DataObject> path : modification.getRemovedOperationalData()) {
+                if (path.getTargetType() == Link.class) {
+                    Link link = (Link) modification.getOriginalOperationalData().get(path);
+                    msg.add(toTopoEdgeUpdate(toAdEdge(link, topology), UpdateType.REMOVED, reader));
+                }
+
+            }
+
+            if (topologyPublisher != null && msg != null && !msg.isEmpty()) {
+                topologyPublisher.edgeUpdate(msg);
+            }
+
+        } catch (Exception e) {
+            LOG.error("Exception caught", e);
+        }
+    }
+
+    protected IPluginOutTopologyService getTopologyPublisher() {
+        return topologyPublisher;
+    }
+
+    protected void setTopologyPublisher(final IPluginOutTopologyService topologyPublisher) {
+        this.topologyPublisher = topologyPublisher;
+    }
+
+}
diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyCommitHandler.xtend b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyCommitHandler.xtend
deleted file mode 100644 (file)
index fcf86f2..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.compatibility.topology
-
-import com.google.common.collect.FluentIterable
-import java.util.concurrent.CopyOnWriteArrayList
-import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader
-import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler
-import org.opendaylight.controller.md.sal.common.api.data.DataModification
-import org.opendaylight.controller.sal.binding.api.data.DataProviderService
-import org.opendaylight.controller.sal.core.UpdateType
-import org.opendaylight.controller.sal.topology.IPluginOutTopologyService
-import org.opendaylight.controller.sal.topology.TopoEdgeUpdate
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link
-import org.opendaylight.yangtools.yang.binding.DataObject
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-import static extension org.opendaylight.controller.sal.compatibility.topology.TopologyMapping.*
-import org.slf4j.LoggerFactory
-
-class TopologyCommitHandler implements DataCommitHandler<InstanceIdentifier<? extends DataObject>, DataObject> {
-    static val LOG = LoggerFactory.getLogger(TopologyCommitHandler);
-    @Property
-    IPluginOutTopologyService topologyPublisher;
-    
-    @Property
-    DataProviderService dataService;
-    
-    new(DataProviderService dataService) {
-        _topologyPublisher = topologyPublisher
-        _dataService = dataService
-    }
-    
-    override requestCommit(DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification) {
-        val msg = new CopyOnWriteArrayList<TopoEdgeUpdate>()
-        try {
-            val reader = TypeSafeDataReader.forReader(dataService)
-            val topologyPath = InstanceIdentifier.builder(NetworkTopology).child(Topology, new TopologyKey(new TopologyId("flow:1"))).toInstance
-            val topology = reader.readOperationalData(topologyPath)
-            val adds = FluentIterable.from(modification.createdOperationalData.entrySet)
-                .filter[value instanceof Link]
-                .transform[(value as Link).toAdEdge(topology).toTopoEdgeUpdate(UpdateType.ADDED,reader)]
-                .toList
-            val updates = FluentIterable.from(modification.updatedOperationalData.entrySet)
-                .filter[!modification.createdOperationalData.containsKey(key) && (value instanceof Link)]
-                .transform[(value as Link).toAdEdge(topology).toTopoEdgeUpdate(UpdateType.ADDED,reader)] // Evidently the ADSAL does not expect edge 'CHANGED"
-                .toList
-            val removes = FluentIterable.from(modification.removedOperationalData)
-                .transform[reader.readOperationalData(it as InstanceIdentifier<DataObject>)]
-                .filter[it instanceof Link]
-                .transform[(it as Link).toAdEdge(topology).toTopoEdgeUpdate(UpdateType.REMOVED,reader)]
-                .toList
-            msg.addAll(adds)
-            msg.addAll(updates)
-            msg.addAll(removes)
-         } catch (Exception e) {
-            LOG.error("Exception caught",e)
-         }
-        return new TopologyTransaction(modification,topologyPublisher,dataService,msg)
-    }
-}
index 4aef75d9916565dc20c3c18a87149669116f4753..21f2b35f40a82c846df07e7ce05fab2ae540029c 100644 (file)
@@ -15,10 +15,10 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey
 import org.opendaylight.yangtools.yang.binding.DataObject
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-import org.opendaylight.yangtools.concepts.Registration
-import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link
 import org.slf4j.LoggerFactory
+import org.opendaylight.yangtools.concepts.ListenerRegistration
+import org.opendaylight.controller.sal.binding.api.data.DataChangeListener
 
 class TopologyProvider implements AutoCloseable{
     static val LOG = LoggerFactory.getLogger(TopologyProvider);
@@ -30,8 +30,9 @@ class TopologyProvider implements AutoCloseable{
     @Property
     DataProviderService dataService;
     
-    Registration<DataCommitHandler<InstanceIdentifier<? extends DataObject>,DataObject>> commitHandlerRegistration;
-
+    ListenerRegistration<DataChangeListener> listenerRegistration
+    
+    
     def void start() {
 
     }
@@ -40,18 +41,17 @@ class TopologyProvider implements AutoCloseable{
             LOG.error("dataService not set");
             return;
         }
-        commitHandler = new TopologyCommitHandler(dataService)
-        commitHandler.setTopologyPublisher(topologyPublisher)
+        commitHandler = new TopologyCommitHandler(dataService,topologyPublisher);
         val InstanceIdentifier<? extends DataObject> path = InstanceIdentifier.builder(NetworkTopology)
             .child(Topology,new TopologyKey(new TopologyId("flow:1")))
             .child(Link)
             .toInstance();
-        commitHandlerRegistration = dataService.registerCommitHandler(path,commitHandler);
+        listenerRegistration = dataService.registerDataChangeListener(path,commitHandler);
         LOG.info("TopologyProvider started")
     }
     
     override close() throws Exception {
-        commitHandlerRegistration.close
+        listenerRegistration.close
     }
     
     def setTopologyPublisher(IPluginOutTopologyService topologyPublisher) {
diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyTransaction.xtend b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyTransaction.xtend
deleted file mode 100644 (file)
index 4de78ca..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.compatibility.topology
-
-import java.util.Collections
-import java.util.List
-import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction
-import org.opendaylight.controller.md.sal.common.api.data.DataModification
-import org.opendaylight.controller.sal.binding.api.data.DataProviderService
-import org.opendaylight.controller.sal.topology.IPluginOutTopologyService
-import org.opendaylight.controller.sal.topology.TopoEdgeUpdate
-import org.opendaylight.yangtools.yang.binding.DataObject
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-import org.opendaylight.yangtools.yang.common.RpcResult
-import org.slf4j.LoggerFactory
-
-class TopologyTransaction implements DataCommitTransaction<InstanceIdentifier<?extends DataObject>, DataObject> {
-    static val LOG = LoggerFactory.getLogger(TopologyTransaction);
-    @Property
-    val DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification;
-    
-    @Property
-    IPluginOutTopologyService topologyPublisher;
-    
-    @Property
-    DataProviderService dataService;
-    @Property
-    List<TopoEdgeUpdate> edgeUpdates;
-    
-    new(DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification,IPluginOutTopologyService topologyPublisher,
-        DataProviderService dataService,List<TopoEdgeUpdate> edgeUpdates) {
-        _modification = modification;
-        _topologyPublisher = topologyPublisher
-        _dataService = dataService
-        _edgeUpdates = edgeUpdates
-    }
-    override finish() throws IllegalStateException {
-        
-        if(topologyPublisher != null && _edgeUpdates != null && !edgeUpdates.empty) {
-            topologyPublisher.edgeUpdate(edgeUpdates)
-        }
-         
-         return new RpcResultTo()
-    }
-    
-    override getModification() {
-        return _modification;
-    }
-    
-    override rollback() throws IllegalStateException {
-        // NOOP
-    }
-}
-class RpcResultTo implements RpcResult<Void> {
-    
-    override getErrors() {
-        return Collections.emptySet
-    }
-    
-    override getResult() {
-        return null;
-    }
-    
-    override isSuccessful() {
-        return true;
-    }
-    
-}
diff --git a/opendaylight/md-sal/feature/pom.xml b/opendaylight/md-sal/feature/pom.xml
new file mode 100644 (file)
index 0000000..c08c3e5
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+  <artifactId>mdsal-features</artifactId>
+
+  <packaging>pom</packaging>
+
+  <properties>
+    <features.file>features.xml</features.file>
+  </properties>
+
+  <dependencies></dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <filtering>true</filtering>
+        <directory>src/main/resources</directory>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>filter</id>
+            <goals>
+              <goal>resources</goal>
+            </goals>
+            <phase>generate-resources</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-artifacts</id>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <phase>package</phase>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  <file>${project.build.directory}/classes/${features.file}</file>
+                  <type>xml</type>
+                  <classifier>features</classifier>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+  </scm>
+</project>
diff --git a/opendaylight/md-sal/feature/src/main/resources/features.xml b/opendaylight/md-sal/feature/src/main/resources/features.xml
new file mode 100644 (file)
index 0000000..f816018
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<features name="mdsal-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
+    <feature name='mdsal-all' version='${project.version}'>
+        <feature version='${project.version}'>odl-mdsal-commons</feature>
+        <feature version='${project.version}'>odl-mdsal-broker</feature>
+        <feature version='${project.version}'>odl-mdsal-restconf</feature>
+    </feature>
+    <feature name='odl-mdsal-commons' version='${project.version}'>
+        <feature version='${yangtools.version}'>yangtools-concepts</feature>
+        <feature version='${yangtools.version}'>yangtools-binding</feature>
+        <bundle>mvn:org.opendaylight.controller/sal-common/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-common-api/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-common-impl/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-common-util/${project.version}</bundle>
+        <bundle>wrap:mvn:com.google.guava/guava/${guava.version}</bundle>
+        <bundle>wrap:mvn:org.eclipse.xtend/org.eclipse.xtend.lib/${xtend.version}</bundle>
+    </feature>
+    <feature name='odl-mdsal-broker' version='${project.version}'>
+        <feature version='${yangtools.version}'>yangtools-concepts</feature>
+        <feature version='${yangtools.version}'>yangtools-binding</feature>
+        <feature version='${mdsal.version}'>odl-mdsal-commons</feature>
+        <feature version='${config.version}'>odl-config-subsystem</feature>
+        <bundle>mvn:org.opendaylight.controller/sal-core-api/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-core-spi/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-broker-impl/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-binding-api/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-binding-config/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-binding-broker-impl/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-binding-util/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller/sal-connector-api/${project.version}</bundle>
+    </feature>
+    <feature name='odl-mdsal-restconf' version='${project.version}'>
+        <feature version='${mdsal.version}'>odl-mdsal-broker</feature>
+        <bundle>mvn:org.opendaylight.controller/sal-rest-connector/${project.version}</bundle>
+        <bundle>wrap:mvn:com.google.code.gson/gson/${gson.version}</bundle>
+        <bundle>wrap:mvn:com.sun.jersey/jersey-core/${jersey.version}</bundle>
+        <bundle>wrap:mvn:com.sun.jersey/jersey-server/${jersey.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller.thirdparty/com.sun.jersey.jersey-servlet/${jersey.version}</bundle>
+        <bundle>wrap:mvn:io.netty/netty-buffer/${netty.version}</bundle>
+        <bundle>wrap:mvn:io.netty/netty-codec/${netty.version}</bundle>
+        <bundle>wrap:mvn:io.netty/netty-codec-http/${netty.version}</bundle>
+        <bundle>wrap:mvn:io.netty/netty-common/${netty.version}</bundle>
+        <bundle>wrap:mvn:io.netty/netty-handler/${netty.version}</bundle>
+        <bundle>wrap:mvn:io.netty/netty-transport/${netty.version}</bundle>
+    </feature>
+</features>
\ No newline at end of file
index 40a79033a7d163f3e5ecdd520cc5f938715131aa..1706996ce4a301ef4564ac765032c608c39bea68 100644 (file)
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.eclipse.xtend</groupId>
-      <artifactId>org.eclipse.xtend.lib</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>sal-binding-api</artifactId>
           </instructions>
         </configuration>
       </plugin>
-      <plugin>
-        <groupId>org.eclipse.xtend</groupId>
-        <artifactId>xtend-maven-plugin</artifactId>
-      </plugin>
     </plugins>
   </build>
   <scm>
diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.java b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.java
new file mode 100644 (file)
index 0000000..7e4190f
--- /dev/null
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.md.inventory.manager;
+
+import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
+import org.opendaylight.yangtools.concepts.Registration;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FlowCapableInventoryProvider implements AutoCloseable {
+
+    private final static Logger LOG = LoggerFactory.getLogger(FlowCapableInventoryProvider.class);
+
+    private DataProviderService dataService;
+    private NotificationProviderService notificationService;
+    private Registration<NotificationListener> listenerRegistration;
+    private final NodeChangeCommiter changeCommiter = new NodeChangeCommiter(FlowCapableInventoryProvider.this);
+
+    public void start() {
+        this.listenerRegistration = this.notificationService.registerNotificationListener(this.changeCommiter);
+        LOG.info("Flow Capable Inventory Provider started.");
+    }
+
+    protected DataModificationTransaction startChange() {
+        DataProviderService _dataService = this.dataService;
+        return _dataService.beginTransaction();
+    }
+
+    @Override
+    public void close() {
+        try {
+            LOG.info("Flow Capable Inventory Provider stopped.");
+            if (this.listenerRegistration != null) {
+                this.listenerRegistration.close();
+            }
+        } catch (Exception e) {
+            String errMsg = "Error by stop Flow Capable Inventory Provider.";
+            LOG.error(errMsg, e);
+            throw new RuntimeException(errMsg, e);
+        }
+    }
+
+    public DataProviderService getDataService() {
+        return this.dataService;
+    }
+
+    public void setDataService(final DataProviderService dataService) {
+        this.dataService = dataService;
+    }
+
+    public NotificationProviderService getNotificationService() {
+        return this.notificationService;
+    }
+
+    public void setNotificationService(
+            final NotificationProviderService notificationService) {
+        this.notificationService = notificationService;
+    }
+}
diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.xtend b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.xtend
deleted file mode 100644 (file)
index ec8da86..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- * 
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.inventory.manager
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.OpendaylightInventoryListener
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRemoved
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRemoved
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdated
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService
-import org.opendaylight.controller.sal.binding.api.data.DataProviderService
-import org.opendaylight.yangtools.concepts.Registration
-import org.opendaylight.yangtools.yang.binding.NotificationListener
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-import org.opendaylight.yangtools.yang.binding.DataObject
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorUpdated
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeUpdated
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey
-import static extension org.opendaylight.controller.md.inventory.manager.InventoryMapping.*
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey
-import org.slf4j.LoggerFactory
-
-class FlowCapableInventoryProvider implements AutoCloseable {
-
-
-    static val LOG = LoggerFactory.getLogger(FlowCapableInventoryProvider);
-
-    @Property
-    DataProviderService dataService;
-
-    @Property
-    NotificationProviderService notificationService;
-    val NodeChangeCommiter changeCommiter = new NodeChangeCommiter(this);
-
-    Registration<NotificationListener> listenerRegistration
-
-    def void start() {
-        listenerRegistration = notificationService.registerNotificationListener(changeCommiter);
-        LOG.info("Flow Capable Inventory Provider started.");
-        
-    }
-
-    protected def startChange() {
-        return dataService.beginTransaction;
-    }
-
-    override close() {
-       LOG.info("Flow Capable Inventory Provider stopped.");
-        listenerRegistration?.close();
-    }
-    
-}
\ No newline at end of file
diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.java b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.java
new file mode 100644 (file)
index 0000000..6c06088
--- /dev/null
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.md.inventory.manager;
+
+import org.opendaylight.controller.sal.binding.api.AbstractBindingAwareProvider;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
+import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
+import org.osgi.framework.BundleContext;
+
+public class InventoryActivator extends AbstractBindingAwareProvider {
+
+    private static FlowCapableInventoryProvider provider = new FlowCapableInventoryProvider();
+
+    @Override
+    public void onSessionInitiated(final ProviderContext session) {
+        DataProviderService salDataService = session.<DataProviderService> getSALService(DataProviderService.class);
+        NotificationProviderService salNotifiService =
+                session.<NotificationProviderService> getSALService(NotificationProviderService.class);
+        InventoryActivator.provider.setDataService(salDataService);
+        InventoryActivator.provider.setNotificationService(salNotifiService);
+        InventoryActivator.provider.start();
+    }
+
+    @Override
+    protected void stopImpl(final BundleContext context) {
+        InventoryActivator.provider.close();
+    }
+}
diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.xtend b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.xtend
deleted file mode 100644 (file)
index 5d76924..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- * 
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.inventory.manager
-
-import org.opendaylight.controller.sal.binding.api.AbstractBindingAwareProvider
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext
-import org.osgi.framework.BundleContext
-import org.opendaylight.controller.sal.binding.api.data.DataProviderService
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService
-
-class InventoryActivator extends AbstractBindingAwareProvider {
-
-    static var FlowCapableInventoryProvider provider = new FlowCapableInventoryProvider();
-
-    override onSessionInitiated(ProviderContext session) {
-        provider.dataService = session.getSALService(DataProviderService)
-        provider.notificationService = session.getSALService(NotificationProviderService)
-        provider.start();
-    }
-
-    override protected stopImpl(BundleContext context) {
-        provider.close();
-    }
-
-}
diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.java b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.java
new file mode 100644 (file)
index 0000000..928ae76
--- /dev/null
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.md.inventory.manager;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowNodeConnector;
+
+public class InventoryMapping {
+
+    public static FlowCapableNodeConnector toInventoryAugment(final FlowNodeConnector updated) {
+        if ((updated instanceof FlowCapableNodeConnector)) {
+            return ((FlowCapableNodeConnector) updated);
+        }
+        final FlowCapableNodeConnectorBuilder builder = new FlowCapableNodeConnectorBuilder();
+        builder.setAdvertisedFeatures(updated.getAdvertisedFeatures());
+        builder.setConfiguration(updated.getConfiguration());
+        builder.setCurrentFeature(updated.getCurrentFeature());
+        builder.setCurrentSpeed(updated.getCurrentSpeed());
+        builder.setHardwareAddress(updated.getHardwareAddress());
+        builder.setMaximumSpeed(updated.getMaximumSpeed());
+        builder.setName(updated.getName());
+        builder.setPeerFeatures(updated.getPeerFeatures());
+        builder.setPortNumber(updated.getPortNumber());
+        builder.setState(updated.getState());
+        builder.setSupported(updated.getSupported());
+        return builder.build();
+    }
+
+    public static FlowCapableNode toInventoryAugment(final FlowNode source) {
+        if ((source instanceof FlowCapableNode)) {
+            return ((FlowCapableNode) source);
+        }
+        return (new FlowCapableNodeBuilder(source)).build();
+    }
+}
diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.xtend b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.xtend
deleted file mode 100644 (file)
index 6f1ef5e..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- * 
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.inventory.manager
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowNodeConnector
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowNode
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder
-
-class InventoryMapping {
-
-    static def FlowCapableNodeConnector toInventoryAugment(FlowNodeConnector updated) {
-        if (updated instanceof FlowCapableNodeConnector) {
-            return updated as FlowCapableNodeConnector;
-        }
-        val it = new FlowCapableNodeConnectorBuilder();
-        advertisedFeatures = updated.advertisedFeatures
-        configuration = updated.configuration
-        currentFeature = updated.currentFeature
-        currentSpeed = updated.currentSpeed
-        hardwareAddress = updated.hardwareAddress
-        maximumSpeed = updated.maximumSpeed
-        name = updated.name
-        peerFeatures = updated.peerFeatures
-        portNumber = updated.portNumber
-        state = updated.state
-        supported = updated.supported
-        return build();
-    }
-
-    static def FlowCapableNode toInventoryAugment(FlowNode source) {
-        if (source instanceof FlowCapableNode) {
-            return source as FlowCapableNode;
-        }
-        val it = new FlowCapableNodeBuilder(source);
-        return build();
-    }
-
-}
index ebb3de7dcae6d8380b1ad465a63e8900689740c1..2a3d8fd37e26c1cafc012c68102f417063c51713 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.controller.md.inventory.manager;
 
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
 import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
@@ -20,7 +19,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeCon
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRemoved;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRemoved;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdated;
@@ -38,10 +36,13 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Objects;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.JdkFutureAdapters;
 
-@SuppressWarnings("all")
 public class NodeChangeCommiter implements OpendaylightInventoryListener {
-    private final static Logger LOG = LoggerFactory.getLogger(NodeChangeCommiter.class);
+
+    protected final static Logger LOG = LoggerFactory.getLogger(NodeChangeCommiter.class);
 
     private final FlowCapableInventoryProvider manager;
 
@@ -58,15 +59,10 @@ public class NodeChangeCommiter implements OpendaylightInventoryListener {
 
         final NodeConnectorRef ref = connector.getNodeConnectorRef();
         final DataModificationTransaction it = this.getManager().startChange();
-        NodeChangeCommiter.LOG.debug("removing node connector {} ", ref.getValue());
+        LOG.debug("removing node connector {} ", ref.getValue());
         it.removeOperationalData(ref.getValue());
         Future<RpcResult<TransactionStatus>> commitResult = it.commit();
-        try {
-            commitResult.get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Node Connector {} not removed.", ref.getValue(), e);
-        }
-
+        listenOnTransactionState(it.getIdentifier(), commitResult, "nodeConnector removal", ref.getValue());
     }
 
     @Override
@@ -75,7 +71,7 @@ public class NodeChangeCommiter implements OpendaylightInventoryListener {
         final NodeConnectorRef ref = connector.getNodeConnectorRef();
         final FlowCapableNodeConnectorUpdated flowConnector = connector
                 .getAugmentation(FlowCapableNodeConnectorUpdated.class);
-        final DataModificationTransaction it = this.getManager().startChange();
+        final DataModificationTransaction it = this.manager.startChange();
         final NodeConnectorBuilder data = new NodeConnectorBuilder(connector);
         NodeConnectorId id = connector.getId();
         NodeConnectorKey nodeConnectorKey = new NodeConnectorKey(id);
@@ -86,39 +82,22 @@ public class NodeChangeCommiter implements OpendaylightInventoryListener {
             data.addAugmentation(FlowCapableNodeConnector.class, augment);
         }
         InstanceIdentifier<? extends Object> value = ref.getValue();
-        String string = value.toString();
-        String plus = ("updating node connector : " + string);
-        NodeChangeCommiter.LOG.debug(plus);
-        InstanceIdentifier<? extends Object> value1 = ref.getValue();
+        LOG.debug("updating node connector : {}.", value);
         NodeConnector build = data.build();
-        it.putOperationalData((value1), build);
+        it.putOperationalData((value), build);
         Future<RpcResult<TransactionStatus>> commitResult = it.commit();
-        try {
-            commitResult.get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Node Connector {} not updated.", ref.getValue(), e);
-        }
-
+        listenOnTransactionState(it.getIdentifier(), commitResult, "nodeConnector update", ref.getValue());
     }
 
     @Override
     public synchronized void onNodeRemoved(final NodeRemoved node) {
 
         final NodeRef ref = node.getNodeRef();
-        FlowCapableInventoryProvider manager = this.getManager();
-        final DataModificationTransaction it = manager.startChange();
-        InstanceIdentifier<? extends Object> value = ref.getValue();
-        String string = value.toString();
-        String plus = ("removing node : " + string);
-        NodeChangeCommiter.LOG.debug(plus);
-        InstanceIdentifier<? extends Object> value1 = ref.getValue();
-        it.removeOperationalData((value1));
+        final DataModificationTransaction it = this.manager.startChange();
+        LOG.debug("removing node : {}", ref.getValue());
+        it.removeOperationalData((ref.getValue()));
         Future<RpcResult<TransactionStatus>> commitResult = it.commit();
-        try {
-            commitResult.get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Node {} not removed.", ref.getValue(), e);
-        }
+        listenOnTransactionState(it.getIdentifier(), commitResult, "node removal", ref.getValue());
     }
 
     @Override
@@ -127,33 +106,49 @@ public class NodeChangeCommiter implements OpendaylightInventoryListener {
         final NodeRef ref = node.getNodeRef();
         final FlowCapableNodeUpdated flowNode = node
                 .<FlowCapableNodeUpdated> getAugmentation(FlowCapableNodeUpdated.class);
-        FlowCapableInventoryProvider manager = this.getManager();
-        final DataModificationTransaction it = manager.startChange();
-        NodeBuilder nodeBuilder = new NodeBuilder(node);
-        final NodeBuilder data = nodeBuilder;
-        NodeId id = node.getId();
-        NodeKey nodeKey = new NodeKey(id);
-        data.setKey(nodeKey);
+        final DataModificationTransaction it = this.manager.startChange();
+        final NodeBuilder nodeBuilder = new NodeBuilder(node);
+        nodeBuilder.setKey(new NodeKey(node.getId()));
         boolean equals = Objects.equal(flowNode, null);
         if (equals) {
             return;
         }
         final FlowCapableNode augment = InventoryMapping.toInventoryAugment(flowNode);
-        data.addAugmentation(FlowCapableNode.class, augment);
+        nodeBuilder.addAugmentation(FlowCapableNode.class, augment);
         InstanceIdentifier<? extends Object> value = ref.getValue();
-        InstanceIdentifierBuilder<Node> builder = InstanceIdentifier.<Node> builder(((InstanceIdentifier<Node>) value));
+        InstanceIdentifierBuilder<Node> builder = ((InstanceIdentifier<Node>) value).builder();
         InstanceIdentifierBuilder<FlowCapableNode> augmentation = builder
                 .<FlowCapableNode> augmentation(FlowCapableNode.class);
         final InstanceIdentifier<FlowCapableNode> path = augmentation.build();
-        NodeChangeCommiter.LOG.debug("updating node :{} ", path);
+        LOG.debug("updating node :{} ", path);
         it.putOperationalData(path, augment);
 
         Future<RpcResult<TransactionStatus>> commitResult = it.commit();
-        try {
-            commitResult.get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Node  {} not updated.", ref.getValue(), e);
-        }
-
+        listenOnTransactionState(it.getIdentifier(), commitResult, "node update", ref.getValue());
+    }
+    
+    /**
+     * @param txId transaction identificator
+     * @param future transaction result
+     * @param action performed by transaction
+     * @param nodeConnectorPath target value
+     */
+    private static void listenOnTransactionState(final Object txId, Future<RpcResult<TransactionStatus>> future,
+            final String action, final InstanceIdentifier<?> nodeConnectorPath) {
+        Futures.addCallback(JdkFutureAdapters.listenInPoolThread(future),new FutureCallback<RpcResult<TransactionStatus>>() {
+            
+            @Override
+            public void onFailure(Throwable t) {
+                LOG.error("Action {} [{}] failed for Tx:{}", action, nodeConnectorPath, txId, t);
+                
+            }
+            
+            @Override
+            public void onSuccess(RpcResult<TransactionStatus> result) {
+                if(!result.isSuccessful()) {
+                    LOG.error("Action {} [{}] failed for Tx:{}", action, nodeConnectorPath, txId);
+                }
+            }
+        });
     }
 }
index 4e933c5bcf5c04dac1e0a11d013ae04248b8df58..edc9bf0f227b54f9dcc4d9c33081fefd846db757 100644 (file)
     <module>sal-remoterpc-connector/implementation</module>
     <!--module>clustered-data-store/implementation</module>
         -->
+    <!-- Documentation -->
+    <module>sal-rest-docgen</module>
+
+    <!--  Karaf feature -->
+    <module>feature</module>
 
   </modules>
 
           <configuration>
             <lifecycleMappingMetadata>
               <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-maven-plugin</artifactId>
-                    <versionRange>[0,)</versionRange>
-                    <goals>
-                      <goal>generate-sources</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore></ignore>
-                  </action>
-                </pluginExecution>
                 <pluginExecution>
                   <pluginExecutionFilter>
                     <groupId>net.alchim31.maven</groupId>
index 6bd6e6aaf52294ed0ada1b2809995ea1b7877260..cc9c6ebaa6e18bb20ee9e9245a4d34b8321733e0 100644 (file)
@@ -82,7 +82,7 @@ public class AbstractForwardedTransaction<T extends AsyncTransaction<org.openday
                 try {
                     final DataObject dataObject = normalizedNode.isPresent() ? codec.toBinding(path,
                             normalizedNode.get()) : null;
-                    if(dataObject != null) {
+                    if (dataObject != null) {
                         updateCache(store, path, dataObject);
                     }
                     return Optional.fromNullable(dataObject);
@@ -109,6 +109,27 @@ public class AbstractForwardedTransaction<T extends AsyncTransaction<org.openday
                 .toNormalizedNode(path, data);
 
         org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalizedPath = normalized.getKey();
+        ensureParentsByMerge(writeTransaction, store, normalized.getKey(), path);
+        LOG.debug("Tx: {} : Putting data {}",getDelegate().getIdentifier(),normalized.getKey());
+        writeTransaction.put(store, normalized.getKey(), normalized.getValue());
+    }
+
+    protected void doMergeWithEnsureParents(final DOMDataReadWriteTransaction writeTransaction,
+            final LogicalDatastoreType store, final InstanceIdentifier<?> path, final DataObject data) {
+        invalidateCache(store, path);
+        final Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> normalized = codec
+                .toNormalizedNode(path, data);
+
+        org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalizedPath = normalized.getKey();
+        ensureParentsByMerge(writeTransaction, store, normalized.getKey(), path);
+        LOG.debug("Tx: {} : Merge data {}",getDelegate().getIdentifier(),normalized.getKey());
+        writeTransaction.merge(store, normalized.getKey(), normalized.getValue());
+    }
+
+    private void ensureParentsByMerge(final DOMDataReadWriteTransaction writeTransaction,
+            final LogicalDatastoreType store,
+            final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalizedPath,
+            final InstanceIdentifier<?> path) {
         List<PathArgument> currentArguments = new ArrayList<>();
         DataNormalizationOperation<?> currentOp = codec.getDataNormalizer().getRootOperation();
         Iterator<PathArgument> iterator = normalizedPath.getPath().iterator();
@@ -135,8 +156,6 @@ public class AbstractForwardedTransaction<T extends AsyncTransaction<org.openday
                 writeTransaction.merge(store, currentPath, currentOp.createDefault(currentArg));
             }
         }
-        //LOG .info("Tx: {} : Putting data {}",getDelegate().getIdentifier(),normalized.getKey());
-        writeTransaction.put(store, normalized.getKey(), normalized.getValue());
     }
 
     protected void doMerge(final DOMDataWriteTransaction writeTransaction, final LogicalDatastoreType store,
index 35ebe76499f51e6bb5b629c4cf42a944fe727ea8..6329637dd01cfdad2470345e4c8433a07fe62ebf 100644 (file)
@@ -7,28 +7,43 @@
  */
 package org.opendaylight.controller.md.sal.binding.impl;
 
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
 import java.util.AbstractMap.SimpleEntry;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map.Entry;
+import java.util.concurrent.Callable;
 
 import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationException;
 import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer;
+import org.opendaylight.yangtools.concepts.util.ClassLoaderUtils;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
+import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.Item;
+import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.AugmentationIdentifier;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService;
 import org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
 
 public class BindingToNormalizedNodeCodec implements SchemaContextListener {
 
@@ -44,10 +59,15 @@ public class BindingToNormalizedNodeCodec implements SchemaContextListener {
 
     public org.opendaylight.yangtools.yang.data.api.InstanceIdentifier toNormalized(
             final InstanceIdentifier<? extends DataObject> binding) {
-        final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier legacyPath = bindingToLegacy.toDataDom(binding);
-        final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized = legacyToNormalized.toNormalized(legacyPath);
-        LOG.trace("InstanceIdentifier Path {} Serialization: Legacy representation {}, Normalized representation: {}",binding,legacyPath,normalized);
-        return normalized;
+
+        // Used instance-identifier codec do not support serialization of last path
+        // argument if it is Augmentation (behaviour expected by old datastore)
+        // in this case, we explicitly check if last argument is augmentation
+        // to process it separately
+        if (isAugmentationIdentifier(binding)) {
+            return toNormalizedAugmented(binding);
+        }
+        return toNormalizedImpl(binding);
     }
 
     public Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> toNormalizedNode(
@@ -58,39 +78,85 @@ public class BindingToNormalizedNodeCodec implements SchemaContextListener {
 
     public Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> toNormalizedNode(
             final Entry<org.opendaylight.yangtools.yang.binding.InstanceIdentifier<? extends DataObject>, DataObject> binding) {
-        Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, CompositeNode> legacyEntry = bindingToLegacy.toDataDom(binding);
-        Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> normalizedEntry = legacyToNormalized.toNormalized(legacyEntry);
-        LOG.trace("Serialization of {}, Legacy Representation: {}, Normalized Representation: {}",binding,legacyEntry,normalizedEntry);
-        if(Augmentation.class.isAssignableFrom(binding.getKey().getTargetType())) {
-
-            for(DataContainerChild<? extends PathArgument, ?> child : ((DataContainerNode<?>) normalizedEntry.getValue()).getValue()) {
-               if(child instanceof AugmentationNode) {
-                   ImmutableList<PathArgument> childArgs = ImmutableList.<PathArgument>builder()
-                           .addAll(normalizedEntry.getKey().getPath())
-                           .add(child.getIdentifier())
-                           .build();
-                   org.opendaylight.yangtools.yang.data.api.InstanceIdentifier childPath = new org.opendaylight.yangtools.yang.data.api.InstanceIdentifier(childArgs);
-                   return new SimpleEntry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>>(childPath,child);
-               }
+        Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, CompositeNode> legacyEntry = bindingToLegacy
+                .toDataDom(binding);
+        Entry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>> normalizedEntry = legacyToNormalized
+                .toNormalized(legacyEntry);
+        LOG.trace("Serialization of {}, Legacy Representation: {}, Normalized Representation: {}", binding,
+                legacyEntry, normalizedEntry);
+        if (Augmentation.class.isAssignableFrom(binding.getKey().getTargetType())) {
+
+            for (DataContainerChild<? extends PathArgument, ?> child : ((DataContainerNode<?>) normalizedEntry
+                    .getValue()).getValue()) {
+                if (child instanceof AugmentationNode) {
+                    ImmutableList<PathArgument> childArgs = ImmutableList.<PathArgument> builder()
+                            .addAll(normalizedEntry.getKey().getPath()).add(child.getIdentifier()).build();
+                    org.opendaylight.yangtools.yang.data.api.InstanceIdentifier childPath = new org.opendaylight.yangtools.yang.data.api.InstanceIdentifier(
+                            childArgs);
+                    return new SimpleEntry<org.opendaylight.yangtools.yang.data.api.InstanceIdentifier, NormalizedNode<?, ?>>(
+                            childPath, child);
+                }
             }
 
         }
         return normalizedEntry;
 
-
     }
 
     public InstanceIdentifier<? extends DataObject> toBinding(
             final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized)
             throws DeserializationException {
 
+        PathArgument lastArgument = Iterables.getLast(normalized.getPath());
+        // Used instance-identifier codec do not support serialization of last path
+        // argument if it is AugmentationIdentifier (behaviour expected by old datastore)
+        // in this case, we explicitly check if last argument is augmentation
+        // to process it separately
+        if (lastArgument instanceof AugmentationIdentifier) {
+            return toBindingAugmented(normalized);
+        }
+        return toBindingImpl(normalized);
+    }
+
+    private InstanceIdentifier<? extends DataObject> toBindingAugmented(
+            final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized) throws DeserializationException {
+        InstanceIdentifier<? extends DataObject> potential = toBindingImpl(normalized);
+        // Shorthand check, if codec already supports deserialization
+        // of AugmentationIdentifier we will return
+        if(isAugmentationIdentifier(potential)) {
+            return potential;
+        }
+
+        AugmentationIdentifier lastArgument = (AugmentationIdentifier) Iterables.getLast(normalized.getPath());
+
+        // Here we employ small trick - Binding-aware Codec injects an pointer to augmentation class
+        // if child is referenced - so we will reference child and then shorten path.
+        for (QName child : lastArgument.getPossibleChildNames()) {
+            org.opendaylight.yangtools.yang.data.api.InstanceIdentifier childPath = new org.opendaylight.yangtools.yang.data.api.InstanceIdentifier(
+                    ImmutableList.<PathArgument> builder()
+                    .addAll(normalized.getPath()).add(new NodeIdentifier(child)).build());
+            try {
+
+                InstanceIdentifier<? extends DataObject> potentialPath = shortenToLastAugment(toBindingImpl(childPath));
+                return potentialPath;
+            } catch (Exception e) {
+                LOG.trace("Unable to deserialize aug. child path for {}",childPath,e);
+            }
+        }
+        return toBindingImpl(normalized);
+    }
+
+    private InstanceIdentifier<? extends DataObject> toBindingImpl(
+            final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized)
+            throws DeserializationException {
         org.opendaylight.yangtools.yang.data.api.InstanceIdentifier legacyPath;
         try {
             legacyPath = legacyToNormalized.toLegacy(normalized);
         } catch (DataNormalizationException e) {
-            throw new IllegalStateException("Could not denormalize path.",e);
+            throw new IllegalStateException("Could not denormalize path.", e);
         }
-        LOG.trace("InstanceIdentifier Path Deserialization: Legacy representation {}, Normalized representation: {}",legacyPath,normalized);
+        LOG.trace("InstanceIdentifier Path Deserialization: Legacy representation {}, Normalized representation: {}",
+                legacyPath, normalized);
         return bindingToLegacy.fromDataDom(legacyPath);
     }
 
@@ -103,7 +169,19 @@ public class BindingToNormalizedNodeCodec implements SchemaContextListener {
 
     public DataObject toBinding(final InstanceIdentifier<?> path, final NormalizedNode<?, ?> normalizedNode)
             throws DeserializationException {
-        return bindingToLegacy.dataObjectFromDataDom(path, (CompositeNode) DataNormalizer.toLegacy(normalizedNode));
+        CompositeNode legacy = null;
+        if(isAugmentationIdentifier(path) && normalizedNode instanceof AugmentationNode) {
+            QName augIdentifier = BindingReflections.findQName(path.getTargetType());
+            ContainerNode virtualNode = Builders.containerBuilder() //
+                    .withNodeIdentifier(new NodeIdentifier(augIdentifier)) //
+                    .withChild((DataContainerChild<?, ?>) normalizedNode) //
+                    .build();
+            legacy = (CompositeNode) DataNormalizer.toLegacy(virtualNode);
+        } else {
+            legacy = (CompositeNode) DataNormalizer.toLegacy(normalizedNode);
+        }
+
+        return bindingToLegacy.dataObjectFromDataDom(path, legacy);
     }
 
     public DataNormalizer getDataNormalizer() {
@@ -123,4 +201,141 @@ public class BindingToNormalizedNodeCodec implements SchemaContextListener {
         legacyToNormalized = new DataNormalizer(arg0);
     }
 
+    private org.opendaylight.yangtools.yang.data.api.InstanceIdentifier toNormalizedAugmented(
+            final InstanceIdentifier<?> augPath) {
+        org.opendaylight.yangtools.yang.data.api.InstanceIdentifier processed = toNormalizedImpl(augPath);
+        // If used instance identifier codec added supports for deserialization
+        // of last AugmentationIdentifier we will just reuse it
+        if(isAugmentationIdentifier(processed)) {
+            return processed;
+        }
+        // Here we employ small trick - DataNormalizer injecst augmentation identifier if child is
+        // also part of the path (since using a child we can safely identify augmentation)
+        // so, we scan augmentation for children add it to path
+        // and use original algorithm, then shorten it to last augmentation
+        for (@SuppressWarnings("rawtypes") Class augChild : getAugmentationChildren(augPath.getTargetType())) {
+            @SuppressWarnings("unchecked")
+            InstanceIdentifier<?> childPath = augPath.child(augChild);
+            org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized = toNormalizedImpl(childPath);
+            org.opendaylight.yangtools.yang.data.api.InstanceIdentifier potentialDiscovered = shortenToLastAugmentation(normalized);
+            if (potentialDiscovered != null) {
+                return potentialDiscovered;
+            }
+        }
+        return processed;
+    }
+
+
+
+    private org.opendaylight.yangtools.yang.data.api.InstanceIdentifier shortenToLastAugmentation(
+            final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized) {
+        int position = 0;
+        int foundPosition = -1;
+        for (PathArgument arg : normalized.getPath()) {
+            position++;
+            if (arg instanceof AugmentationIdentifier) {
+                foundPosition = position;
+            }
+        }
+        if (foundPosition > 0) {
+            return new org.opendaylight.yangtools.yang.data.api.InstanceIdentifier(normalized.getPath().subList(0,
+                    foundPosition));
+        }
+        return null;
+    }
+
+    private InstanceIdentifier<? extends DataObject> shortenToLastAugment(
+            final InstanceIdentifier<? extends DataObject> binding) {
+        int position = 0;
+        int foundPosition = -1;
+        for(org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument arg : binding.getPathArguments()) {
+            position++;
+            if (isAugmentation(arg.getType())) {
+                foundPosition = position;
+            }
+        }
+        return InstanceIdentifier.create(Iterables.limit(binding.getPathArguments(), foundPosition));
+    }
+
+
+
+    private org.opendaylight.yangtools.yang.data.api.InstanceIdentifier toNormalizedImpl(
+            final InstanceIdentifier<? extends DataObject> binding) {
+        final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier legacyPath = bindingToLegacy
+                .toDataDom(binding);
+        final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier normalized = legacyToNormalized
+                .toNormalized(legacyPath);
+        return normalized;
+    }
+
+    @SuppressWarnings("unchecked")
+    private Iterable<Class<? extends DataObject>> getAugmentationChildren(final Class<?> targetType) {
+        List<Class<? extends DataObject>> ret = new LinkedList<>();
+        for (Method method : targetType.getMethods()) {
+            Class<?> entity = getYangModeledType(method);
+            if (entity != null) {
+                ret.add((Class<? extends DataObject>) entity);
+            }
+        }
+        return ret;
+    }
+
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    private Class<? extends DataObject> getYangModeledType(final Method method) {
+        if (method.getName().equals("getClass") || !method.getName().startsWith("get")
+                || method.getParameterTypes().length > 0) {
+            return null;
+        }
+
+        Class<?> returnType = method.getReturnType();
+        if (DataContainer.class.isAssignableFrom(returnType)) {
+            return (Class) returnType;
+        } else if (List.class.isAssignableFrom(returnType)) {
+            try {
+                return ClassLoaderUtils.withClassLoader(method.getDeclaringClass().getClassLoader(),
+                        new Callable<Class>() {
+
+                            @SuppressWarnings("rawtypes")
+                            @Override
+                            public Class call() throws Exception {
+                                Type listResult = ClassLoaderUtils.getFirstGenericParameter(method
+                                        .getGenericReturnType());
+                                if (listResult instanceof Class
+                                        && DataObject.class.isAssignableFrom((Class) listResult)) {
+                                    return (Class<?>) listResult;
+                                }
+                                return null;
+                            }
+
+                        });
+            } catch (Exception e) {
+                LOG.debug("Could not get YANG modeled entity for {}", method, e);
+                return null;
+            }
+
+        }
+        return null;
+    }
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    private static InstanceIdentifier<?> toWildcarded(final InstanceIdentifier<?> orig) {
+        List<org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument> wildArgs = new LinkedList<>();
+        for (org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument arg : orig.getPathArguments()) {
+            wildArgs.add(new Item(arg.getType()));
+        }
+        return InstanceIdentifier.create(wildArgs);
+    }
+
+
+    private static boolean isAugmentation(final Class<? extends DataObject> type) {
+        return Augmentation.class.isAssignableFrom(type);
+    }
+
+    private static boolean isAugmentationIdentifier(final InstanceIdentifier<?> path) {
+        return Augmentation.class.isAssignableFrom(path.getTargetType());
+    }
+
+    private boolean isAugmentationIdentifier(final org.opendaylight.yangtools.yang.data.api.InstanceIdentifier processed) {
+        return Iterables.getLast(processed.getPath()) instanceof AugmentationIdentifier;
+    }
 }
index ab0dc6e24fb91c96ebf6e40aaa2b6251489a3c2b..ddc79ae075e7551cfd369a81795da0f040b427e6 100644 (file)
@@ -195,6 +195,7 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
     private class ForwardedBackwardsCompatibleTransacion extends
             AbstractForwardedTransaction<DOMDataReadWriteTransaction> implements DataModificationTransaction {
 
+        private final ListenerRegistry<DataTransactionListener> listeners = ListenerRegistry.create();
         private final Map<InstanceIdentifier<? extends DataObject>, DataObject> updated = new HashMap<>();
         private final Map<InstanceIdentifier<? extends DataObject>, DataObject> created = new HashMap<>();
         private final Set<InstanceIdentifier<? extends DataObject>> removed = new HashSet<>();
@@ -218,13 +219,17 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
 
         @Override
         public void putOperationalData(final InstanceIdentifier<? extends DataObject> path, final DataObject data) {
-            posponedRemovedOperational.remove(path);
-            doPutWithEnsureParents(getDelegate(), LogicalDatastoreType.OPERATIONAL, path, data);
+            boolean previouslyRemoved = posponedRemovedOperational.remove(path);
+            if(previouslyRemoved) {
+                doPutWithEnsureParents(getDelegate(), LogicalDatastoreType.OPERATIONAL, path, data);
+            } else {
+                doMergeWithEnsureParents(getDelegate(), LogicalDatastoreType.OPERATIONAL, path, data);
+            }
         }
 
         @Override
         public void putConfigurationData(final InstanceIdentifier<? extends DataObject> path, final DataObject data) {
-            posponedRemovedConfiguration.remove(path);
+            boolean previouslyRemoved = posponedRemovedConfiguration.remove(path);
             DataObject originalObj = readConfigurationData(path);
             if (originalObj != null) {
                 original.put(path, originalObj);
@@ -233,7 +238,11 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
                 created.put(path, data);
             }
             updated.put(path, data);
-            doPutWithEnsureParents(getDelegate(), LogicalDatastoreType.CONFIGURATION, path, data);
+            if(previouslyRemoved) {
+                doPutWithEnsureParents(getDelegate(), LogicalDatastoreType.CONFIGURATION, path, data);
+            } else {
+                doMergeWithEnsureParents(getDelegate(), LogicalDatastoreType.CONFIGURATION, path, data);
+            }
         }
 
         @Override
@@ -314,6 +323,14 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
         private void changeStatus(final TransactionStatus status) {
             LOG.trace("Transaction {} changed status to {}", getIdentifier(), status);
             this.status = status;
+
+            for(ListenerRegistration<DataTransactionListener> listener : listeners) {
+                try {
+                    listener.getInstance().onStatusUpdated(this, status);
+                } catch (Exception e) {
+                    LOG.error("Error during invoking transaction listener {}",listener.getInstance(),e);
+                }
+            }
         }
 
         @Override
@@ -327,10 +344,10 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
                 doDelete(getDelegate(), LogicalDatastoreType.OPERATIONAL, path);
             }
 
-            final ListenableFuture<RpcResult<TransactionStatus>> f = ForwardedBackwardsCompatibleDataBroker.this.commit(this);
-
             changeStatus(TransactionStatus.SUBMITED);
 
+            final ListenableFuture<RpcResult<TransactionStatus>> f = ForwardedBackwardsCompatibleDataBroker.this.commit(this);
+
             Futures.addCallback(f, new FutureCallback<RpcResult<TransactionStatus>>() {
                 @Override
                 public void onSuccess(final RpcResult<TransactionStatus> result) {
@@ -349,7 +366,7 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat
 
         @Override
         public ListenerRegistration<DataTransactionListener> registerListener(final DataTransactionListener listener) {
-            throw new UnsupportedOperationException();
+            return listeners.register(listener);
         }
 
     }
index ac26445bf408677b6e397c9fbb77bcf4fcaa19de..cf754cc74e7c5b386c9b27209726d111f3ebb147 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.controller.sal.binding.codegen.impl;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
-import javassist.ClassPool;
-import org.opendaylight.controller.sal.binding.codegen.RuntimeCodeGenerator;
-import org.opendaylight.controller.sal.binding.spi.NotificationInvokerFactory;
-
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -22,8 +18,15 @@ import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
+import javassist.ClassPool;
+import org.apache.commons.lang3.StringUtils;
+import org.opendaylight.controller.sal.binding.codegen.RuntimeCodeGenerator;
+import org.opendaylight.controller.sal.binding.spi.NotificationInvokerFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class SingletonHolder {
+    private static final Logger logger = LoggerFactory.getLogger(SingletonHolder.class);
 
     public static final ClassPool CLASS_POOL = ClassPool.getDefault();
     public static final org.opendaylight.controller.sal.binding.codegen.impl.RuntimeCodeGenerator RPC_GENERATOR_IMPL = new org.opendaylight.controller.sal.binding.codegen.impl.RuntimeCodeGenerator(
@@ -33,7 +36,10 @@ public class SingletonHolder {
 
     public static final int CORE_NOTIFICATION_THREADS = 4;
     public static final int MAX_NOTIFICATION_THREADS = 32;
+    // block caller thread after MAX_NOTIFICATION_THREADS + MAX_NOTIFICATION_QUEUE_SIZE pending notifications
+    public static final int MAX_NOTIFICATION_QUEUE_SIZE = 1000;
     public static final int NOTIFICATION_THREAD_LIFE = 15;
+    private static final String NOTIFICATION_QUEUE_SIZE_PROPERTY = "mdsal.notificationqueue.size";
 
     private static ListeningExecutorService NOTIFICATION_EXECUTOR = null;
     private static ListeningExecutorService COMMIT_EXECUTOR = null;
@@ -44,22 +50,29 @@ public class SingletonHolder {
      *             should use service injection to make the executor configurable.
      */
     @Deprecated
-    public static synchronized final ListeningExecutorService getDefaultNotificationExecutor() {
+    public static synchronized ListeningExecutorService getDefaultNotificationExecutor() {
 
         if (NOTIFICATION_EXECUTOR == null) {
-            // Overriding the queue since we need an unbounded queue
-            // and threadpoolexecutor would not create new threads if the queue is not full
-            BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>() {
+            int queueSize = MAX_NOTIFICATION_QUEUE_SIZE;
+            String queueValue = System.getProperty(NOTIFICATION_QUEUE_SIZE_PROPERTY);
+            if (StringUtils.isNotBlank(queueValue)) {
+                try {
+                    queueSize = Integer.parseInt(queueValue);
+                    logger.trace("Queue size was set to {}", queueSize);
+                }catch(NumberFormatException e) {
+                    logger.warn("Cannot parse {} as set by {}, using default {}", queueValue,
+                            NOTIFICATION_QUEUE_SIZE_PROPERTY, queueSize);
+                }
+            }
+            // Overriding the queue:
+            // ThreadPoolExecutor would not create new threads if the queue is not full, thus adding
+            // occurs in RejectedExecutionHandler.
+            // This impl saturates threadpool first, then queue. When both are full caller will get blocked.
+            BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>(queueSize) {
                 @Override
                 public boolean offer(Runnable r) {
-                    if (size() <= 1) {
-                        // if the queue is empty (or has just 1), no need to rampup the threads
-                        return super.offer(r);
-                    } else {
-                        // if the queue is not empty, force the queue to return false.
-                        // threadpoolexecutor will spawn a new thread if the queue.offer returns false.
-                        return false;
-                    }
+                    // ThreadPoolExecutor will spawn a new thread after core size is reached only if the queue.offer returns false.
+                    return false;
                 }
             };
 
@@ -74,7 +87,8 @@ public class SingletonHolder {
                             try {
                                 executor.getQueue().put(r);
                             } catch (InterruptedException e) {
-                                e.printStackTrace();
+                                Thread.currentThread().interrupt();// set interrupt flag after clearing
+                                throw new IllegalStateException(e);
                             }
                         }
                     });
@@ -90,7 +104,7 @@ public class SingletonHolder {
      *             should use service injection to make the executor configurable.
      */
     @Deprecated
-    public static synchronized final ListeningExecutorService getDefaultCommitExecutor() {
+    public static synchronized ListeningExecutorService getDefaultCommitExecutor() {
         if (COMMIT_EXECUTOR == null) {
             ThreadFactory factory = new ThreadFactoryBuilder().setDaemon(true).setNameFormat("md-sal-binding-commit-%d").build();
             /*
diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/sal/binding/codegen/impl/SingletonHolderTest.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/sal/binding/codegen/impl/SingletonHolderTest.java
new file mode 100644 (file)
index 0000000..0e4c5cc
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.sal.binding.codegen.impl;
+
+import com.google.common.util.concurrent.ListeningExecutorService;
+import java.lang.reflect.Field;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Ignore
+public class SingletonHolderTest {
+    private static final Logger logger = LoggerFactory.getLogger(SingletonHolderTest.class);
+
+    @Test
+    public void testNotificationExecutor() throws Exception {
+        ListeningExecutorService executor = SingletonHolder.getDefaultNotificationExecutor();
+        ThreadPoolExecutor tpExecutor = (ThreadPoolExecutor) setAccessible(executor.getClass().getDeclaredField("delegate")).get(executor);
+        BlockingQueue<Runnable> queue = tpExecutor.getQueue();
+
+        for (int idx = 0; idx < 100; idx++) {
+            final int idx2 = idx;
+            logger.info("Adding {}\t{}\t{}", idx, queue.size(), tpExecutor.getActiveCount());
+            executor.execute(new Runnable() {
+
+                @Override
+                public void run() {
+                    logger.info("in  {}", idx2);
+                    try {
+                        Thread.sleep(1000);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    logger.info("out {}", idx2);
+                }
+            });
+        }
+        executor.shutdown();
+        executor.awaitTermination(10, TimeUnit.SECONDS);
+    }
+
+    private static Field setAccessible(Field field) {
+        field.setAccessible(true);
+        return field;
+    }
+}
diff --git a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/WriteParentListenAugmentTest.java b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/WriteParentListenAugmentTest.java
new file mode 100644 (file)
index 0000000..cb31885
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.sal.binding.test.bugfix;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Test;
+import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
+import org.opendaylight.controller.sal.binding.api.data.DataChangeListener;
+import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
+import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+import com.google.common.util.concurrent.SettableFuture;
+
+public class WriteParentListenAugmentTest extends AbstractDataServiceTest {
+
+    private static final String NODE_ID = "node:1";
+
+    private static final NodeKey NODE_KEY = new NodeKey(new NodeId(NODE_ID));
+    private static final InstanceIdentifier<Node> NODE_INSTANCE_ID_BA = InstanceIdentifier.builder(Nodes.class) //
+            .child(Node.class, NODE_KEY).toInstance();
+
+    private static final InstanceIdentifier<FlowCapableNode> AUGMENT_WILDCARDED_PATH = InstanceIdentifier
+            .builder(Nodes.class).child(Node.class).augmentation(FlowCapableNode.class).toInstance();
+
+    private static final InstanceIdentifier<FlowCapableNode> AUGMENT_NODE_PATH = InstanceIdentifier
+            .builder(Nodes.class).child(Node.class, NODE_KEY).augmentation(FlowCapableNode.class).toInstance();
+
+    @Test
+    public void writeNodeListenAugment() throws Exception {
+
+        final SettableFuture<DataChangeEvent<InstanceIdentifier<?>, DataObject>> event = SettableFuture.create();
+
+        ListenerRegistration<DataChangeListener> dclRegistration = baDataService.registerDataChangeListener(
+                AUGMENT_WILDCARDED_PATH, new DataChangeListener() {
+
+                    @Override
+                    public void onDataChanged(final DataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
+                        event.set(change);
+                    }
+                });
+
+        DataModificationTransaction modification = baDataService.beginTransaction();
+
+        Node node = new NodeBuilder() //
+                .setKey(NODE_KEY) //
+                .addAugmentation(FlowCapableNode.class, flowCapableNode("one")).build();
+        modification.putOperationalData(NODE_INSTANCE_ID_BA, node);
+        modification.commit().get();
+
+        DataChangeEvent<InstanceIdentifier<?>, DataObject> receivedEvent = event.get(1000, TimeUnit.MILLISECONDS);
+        assertTrue(receivedEvent.getCreatedOperationalData().containsKey(AUGMENT_NODE_PATH));
+
+        dclRegistration.close();
+
+        DataModificationTransaction mod2 = baDataService.beginTransaction();
+        mod2.putOperationalData(AUGMENT_NODE_PATH, flowCapableNode("two"));
+        mod2.commit().get();
+
+        FlowCapableNode readedAug = (FlowCapableNode) baDataService.readOperationalData(AUGMENT_NODE_PATH);
+        assertEquals("two", readedAug.getDescription());
+
+    }
+
+    private FlowCapableNode flowCapableNode(final String description) {
+        return new FlowCapableNodeBuilder() //
+                .setDescription(description) //
+                .build();
+    }
+}
\ No newline at end of file
index 0d20a07ad51a5a953ba98ba94d421bfe601e2e0a..70847aabea0bdeb3670352f2a44c17c8aca3b703 100644 (file)
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>sal-binding-broker-impl</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>nagasena</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
-      <artifactId>nagasena-rta</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools.thirdparty</groupId>
       <artifactId>antlr4-runtime-osgi-nohead</artifactId>
       <artifactId>xtend-lib-osgi</artifactId>
       <version>2.4.3</version>
     </dependency>
+    <dependency>
+      <groupId>org.openexi</groupId>
+      <artifactId>nagasena</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.openexi</groupId>
+      <artifactId>nagasena-rta</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.ops4j.pax.exam</groupId>
       <artifactId>pax-exam</artifactId>
index 166216b226b9c0e26a36718b980bee27efdd8da4..734733a19cdde4179a776a3c20c181dc0b3ea6f3 100644 (file)
@@ -68,8 +68,8 @@ public class TestHelper {
 
                 mavenBundle(CONTROLLER, "netconf-client").versionAsInProject(), //
                 mavenBundle(CONTROLLER, "netconf-util").versionAsInProject(), //
-                mavenBundle(CONTROLLER + ".thirdparty", "nagasena").versionAsInProject(), //
-                mavenBundle(CONTROLLER + ".thirdparty", "nagasena-rta").versionAsInProject(), //
+                mavenBundle("org.openexi", "nagasena").versionAsInProject(), //
+                mavenBundle("org.openexi", "nagasena-rta").versionAsInProject(), //
                 mavenBundle(CONTROLLER + ".thirdparty", "ganymed").versionAsInProject(), //
                 mavenBundle(CONTROLLER, "netconf-mapping-api").versionAsInProject(), //
 
index 3d78f948615d2849862e0fee0c14bb3d028ca0b5..b2f89cf779c0f2363a98366b58075f15c8f1d898 100644 (file)
@@ -70,8 +70,8 @@ public abstract class AbstractTest {
                 mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(), //
                 mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(), //
                 mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena-rta").versionAsInProject(),
+                mavenBundle("org.openexi", "nagasena").versionAsInProject(),
+                mavenBundle("org.openexi", "nagasena-rta").versionAsInProject(),
                  //
                 systemProperty("osgi.bundles.defaultStartLevel").value("4"),
                 systemPackages("sun.nio.ch"),
index 9bbba1e24d8600f196f23df145105d1b787e9c6e..0a2b66c2d0112a35e4173d11ac8c7e06de1f73c2 100644 (file)
@@ -90,7 +90,7 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
 
     @Override
     public DOMStoreWriteTransaction newWriteOnlyTransaction() {
-        return new SnaphostBackedWriteTransaction(nextIdentifier(), snapshot.get(), this, operationTree);
+        return new SnapshotBackedWriteTransaction(nextIdentifier(), snapshot.get(), this, operationTree);
     }
 
     @Override
@@ -139,7 +139,7 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
     }
 
     private synchronized DOMStoreThreePhaseCommitCohort submit(
-            final SnaphostBackedWriteTransaction writeTx) {
+            final SnapshotBackedWriteTransaction writeTx) {
         LOG.debug("Tx: {} is submitted. Modifications: {}",writeTx.getIdentifier(),writeTx.getMutatedView());
         return new ThreePhaseCommitImpl(writeTx);
     }
@@ -226,12 +226,12 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
         }
     }
 
-    private static class SnaphostBackedWriteTransaction extends AbstractDOMStoreTransaction implements DOMStoreWriteTransaction {
+    private static class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransaction implements DOMStoreWriteTransaction {
         private MutableDataTree mutableTree;
         private InMemoryDOMDataStore store;
         private boolean ready = false;
 
-        public SnaphostBackedWriteTransaction(final Object identifier, final DataAndMetadataSnapshot snapshot,
+        public SnapshotBackedWriteTransaction(final Object identifier, final DataAndMetadataSnapshot snapshot,
                 final InMemoryDOMDataStore store, final ModificationApplyOperation applyOper) {
             super(identifier);
             mutableTree = MutableDataTree.from(snapshot, applyOper);
@@ -310,7 +310,7 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
         }
     }
 
-    private static class SnapshotBackedReadWriteTransaction extends SnaphostBackedWriteTransaction implements
+    private static class SnapshotBackedReadWriteTransaction extends SnapshotBackedWriteTransaction implements
             DOMStoreReadWriteTransaction {
 
         protected SnapshotBackedReadWriteTransaction(final Object identifier, final DataAndMetadataSnapshot snapshot,
@@ -332,14 +332,14 @@ public class InMemoryDOMDataStore implements DOMStore, Identifiable<String>, Sch
 
     private class ThreePhaseCommitImpl implements DOMStoreThreePhaseCommitCohort {
 
-        private final SnaphostBackedWriteTransaction transaction;
+        private final SnapshotBackedWriteTransaction transaction;
         private final NodeModification modification;
 
         private DataAndMetadataSnapshot storeSnapshot;
         private Optional<StoreMetadataNode> proposedSubtree;
         private ResolveDataChangeEventsTask listenerResolver;
 
-        public ThreePhaseCommitImpl(final SnaphostBackedWriteTransaction writeTransaction) {
+        public ThreePhaseCommitImpl(final SnapshotBackedWriteTransaction writeTransaction) {
             this.transaction = writeTransaction;
             this.modification = transaction.getMutatedView().getRootModification();
         }
index c62c27dea8908f8043b05561685b7db5ac555adc..e74ba958915d2809b6cac4dc927ea329840652fa 100644 (file)
@@ -394,7 +394,8 @@ public class ResolveDataChangeEventsTask implements Callable<Iterable<ChangeList
 
         Builder eventBuilder = builder(potentialScope) //
                 .setBefore(beforeCont) //
-                .setAfter(afterCont);
+                .setAfter(afterCont)
+                .addUpdated(path, beforeCont, afterCont);
         for (DOMImmutableDataChangeEvent childChange : childChanges) {
             eventBuilder.merge(childChange);
         }
@@ -447,27 +448,34 @@ public class ResolveDataChangeEventsTask implements Callable<Iterable<ChangeList
             final Collection<Node> listeners, final NormalizedNode<PathArgument, ?> node,
             final SimpleEventFactory eventFactory) {
 
-        DOMImmutableDataChangeEvent event = eventFactory.create(path, node);
-
-        if (!listeners.isEmpty()) {
+        final DOMImmutableDataChangeEvent event = eventFactory.create(path, node);
+        DOMImmutableDataChangeEvent propagateEvent = event;
             // We have listeners for this node or it's children, so we will try
             // to do additional processing
-            if (node instanceof NormalizedNodeContainer<?, ?, ?>) {
-                // Node has children, so we will try to resolve it's children
-                // changes.
-                @SuppressWarnings("unchecked")
-                NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>> container = (NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>>) node;
-                for (NormalizedNode<PathArgument, ?> child : container.getValue()) {
-                    PathArgument childId = child.getIdentifier();
-                    Collection<Node> childListeners = getListenerChildrenWildcarded(listeners, childId);
-                    if (!childListeners.isEmpty()) {
-                        resolveSameEventRecursivelly(append(path, childId), childListeners, child, eventFactory);
-                    }
-                }
+        if (node instanceof NormalizedNodeContainer<?, ?, ?>) {
+            Builder eventBuilder = builder(DataChangeScope.BASE);
+            eventBuilder.merge(event);
+            eventBuilder.setBefore(event.getOriginalSubtree());
+            eventBuilder.setAfter(event.getUpdatedSubtree());
+
+            // Node has children, so we will try to resolve it's children
+            // changes.
+            @SuppressWarnings("unchecked")
+            NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>> container = (NormalizedNodeContainer<?, PathArgument, NormalizedNode<PathArgument, ?>>) node;
+            for (NormalizedNode<PathArgument, ?> child : container.getValue()) {
+                PathArgument childId = child.getIdentifier();
+                Collection<Node> childListeners = getListenerChildrenWildcarded(listeners, childId);
+                eventBuilder.merge(resolveSameEventRecursivelly(append(path, childId), childListeners, child, eventFactory));
             }
+            propagateEvent = eventBuilder.build();
+        } else {
+            // We do not dispatch leaf events since Binding Aware components do not support them.
+            propagateEvent = builder(DataChangeScope.BASE).build();
+        }
+        if (!listeners.isEmpty()) {
             addPartialTask(listeners, event);
         }
-        return event;
+        return propagateEvent;
     }
 
     private DOMImmutableDataChangeEvent resolveSubtreeChangeEvent(final InstanceIdentifier path,
@@ -476,7 +484,7 @@ public class ResolveDataChangeEventsTask implements Callable<Iterable<ChangeList
 
         Builder one = builder(DataChangeScope.ONE).setBefore(before.getData()).setAfter(after.getData());
 
-        Builder subtree = builder(DataChangeScope.SUBTREE);
+        Builder subtree = builder(DataChangeScope.SUBTREE).setBefore(before.getData()).setAfter(after.getData());
 
         for (NodeModification childMod : modification.getModifications()) {
             PathArgument childId = childMod.getIdentifier();
index a5c9b7983a92f93a9a2e2049688e0d33eaed1c8b..7ea4d4e09fc1590557b339b65ce78a8fb54f25c6 100644 (file)
@@ -2,6 +2,7 @@ package org.opendaylight.controller.md.sal.dom.store.impl;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -36,8 +37,10 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableCo
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedLeafSetNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedMapNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListEntryNodeBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.AugmentationSchemaProxy;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
 import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
@@ -70,7 +73,7 @@ public abstract class SchemaAwareApplyOperation implements ModificationApplyOper
         } else if (schemaNode instanceof ChoiceNode) {
             return new ChoiceModificationStrategy((ChoiceNode) schemaNode);
         } else if (schemaNode instanceof LeafListSchemaNode) {
-            return new LeafSetEntryModificationStrategy((LeafListSchemaNode) schemaNode);
+            return fromLeafListSchemaNode((LeafListSchemaNode) schemaNode);
         } else if (schemaNode instanceof LeafSchemaNode) {
             return new LeafModificationStrategy((LeafSchemaNode) schemaNode);
         }
@@ -89,6 +92,15 @@ public abstract class SchemaAwareApplyOperation implements ModificationApplyOper
         return new UnorderedMapModificationStrategy(schemaNode);
     }
 
+    private static SchemaAwareApplyOperation fromLeafListSchemaNode(final LeafListSchemaNode schemaNode) {
+        if(schemaNode.isUserOrdered()) {
+            return new OrderedLeafSetModificationStrategy(schemaNode);
+        } else {
+            return new UnorderedLeafSetModificationStrategy(schemaNode);
+        }
+    }
+
+
     public static SchemaAwareApplyOperation from(final DataNodeContainer resolvedTree,
             final AugmentationTarget augSchemas, final AugmentationIdentifier identifier) {
         AugmentationSchema augSchema = null;
@@ -504,7 +516,7 @@ public abstract class SchemaAwareApplyOperation implements ModificationApplyOper
             DataNodeContainerModificationStrategy<AugmentationSchema> {
 
         protected AugmentationModificationStrategy(final AugmentationSchema schema, final DataNodeContainer resolved) {
-            super(schema, AugmentationNode.class);
+            super(createAugmentProxy(schema,resolved), AugmentationNode.class);
             // FIXME: Use resolved children instead of unresolved.
 
         }
@@ -563,12 +575,12 @@ public abstract class SchemaAwareApplyOperation implements ModificationApplyOper
 
     }
 
-    public static class LeafSetModificationStrategy extends NormalizedNodeContainerModificationStrategy {
+    public static class UnorderedLeafSetModificationStrategy extends NormalizedNodeContainerModificationStrategy {
 
         private final Optional<ModificationApplyOperation> entryStrategy;
 
         @SuppressWarnings({ "unchecked", "rawtypes" })
-        protected LeafSetModificationStrategy(final LeafListSchemaNode schema) {
+        protected UnorderedLeafSetModificationStrategy(final LeafListSchemaNode schema) {
             super((Class) LeafSetNode.class);
             entryStrategy = Optional.<ModificationApplyOperation> of(new LeafSetEntryModificationStrategy(schema));
         }
@@ -589,6 +601,32 @@ public abstract class SchemaAwareApplyOperation implements ModificationApplyOper
 
     }
 
+    public static class OrderedLeafSetModificationStrategy extends NormalizedNodeContainerModificationStrategy {
+
+        private final Optional<ModificationApplyOperation> entryStrategy;
+
+        @SuppressWarnings({ "unchecked", "rawtypes" })
+        protected OrderedLeafSetModificationStrategy(final LeafListSchemaNode schema) {
+            super((Class) LeafSetNode.class);
+            entryStrategy = Optional.<ModificationApplyOperation> of(new LeafSetEntryModificationStrategy(schema));
+        }
+
+        @SuppressWarnings("rawtypes")
+        @Override
+        protected NormalizedNodeContainerBuilder createBuilder(final PathArgument identifier) {
+            return ImmutableOrderedLeafSetNodeBuilder.create().withNodeIdentifier((NodeIdentifier) identifier);
+        }
+
+        @Override
+        public Optional<ModificationApplyOperation> getChild(final PathArgument identifier) {
+            if (identifier instanceof NodeWithValue) {
+                return entryStrategy;
+            }
+            return Optional.absent();
+        }
+
+    }
+
     public static class UnkeyedListModificationStrategy extends SchemaAwareApplyOperation {
 
         private final Optional<ModificationApplyOperation> entryStrategy;
@@ -698,4 +736,12 @@ public abstract class SchemaAwareApplyOperation implements ModificationApplyOper
 
     }
 
+    public static AugmentationSchema createAugmentProxy(final AugmentationSchema schema, final DataNodeContainer resolved) {
+        Set<DataSchemaNode> realChildSchemas = new HashSet<>();
+        for(DataSchemaNode augChild : schema.getChildNodes()) {
+            realChildSchemas.add(resolved.getDataChildByName(augChild.getQName()));
+        }
+        return new AugmentationSchemaProxy(schema, realChildSchemas);
+    }
+
 }
index 3e7b115f11e28667114c798062bd4737cda9f333..f47e1efc3fb364d812c08721b3e1b2d78ee6a056 100644 (file)
@@ -457,7 +457,7 @@ public class SchemaAwareRpcBroker implements RpcRouter, Identifiable<String>, Ro
         try {
         listener.onRouteChange(initial);
         } catch (Exception e) {
-            LOG.error("Unhandled exception during sending initial route change event {} to {}",initial,listener);
+            LOG.error("Unhandled exception during sending initial route change event {} to {}",initial,listener, e);
         }
         return reg;
     }
index 27d320f03e656587bfabfc4b6ad95d369e55cd99..d8a76b971d19f63285db382d35a304de4f1f644d 100644 (file)
 
   <dependencies>
     <dependency>
+
       <groupId>${project.groupId}</groupId>
       <artifactId>netconf-client</artifactId>
       <version>${netconf.version}</version>
     </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>netconf-config-dispatcher</artifactId>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>sal-common-util</artifactId>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>netty-threadgroup-config</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>threadpool-config-api</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller.model</groupId>
+      <artifactId>model-inventory</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-data-impl</artifactId>
index ddaf6ea6c378ae7728a00cff8297c82650b3a8d9..a3717a13fe6cb9f5774b912eb1aa7b4cd7b7774c 100644 (file)
@@ -9,33 +9,39 @@ package org.opendaylight.controller.config.yang.md.sal.connector.netconf;
 
 import static org.opendaylight.controller.config.api.JmxAttributeValidationException.checkCondition;
 import static org.opendaylight.controller.config.api.JmxAttributeValidationException.checkNotNull;
-import io.netty.channel.EventLoopGroup;
-import io.netty.util.concurrent.GlobalEventExecutor;
 
+import com.google.common.net.InetAddresses;
+import io.netty.util.HashedWheelTimer;
+import io.netty.util.concurrent.GlobalEventExecutor;
 import java.io.File;
 import java.io.InputStream;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-
 import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
-import org.opendaylight.controller.netconf.client.NetconfSshClientDispatcher;
-import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
+import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder;
 import org.opendaylight.controller.netconf.util.handler.ssh.authentication.LoginPassword;
+import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
 import org.opendaylight.controller.sal.connect.netconf.NetconfDevice;
+import org.opendaylight.controller.sal.connect.netconf.NetconfDeviceListener;
 import org.opendaylight.protocol.framework.ReconnectStrategy;
 import org.opendaylight.protocol.framework.TimedReconnectStrategy;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.inventory.rev140108.NetconfNode;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.model.util.repo.AbstractCachingSchemaSourceProvider;
 import org.opendaylight.yangtools.yang.model.util.repo.FilesystemSchemaCachingProvider;
 import org.opendaylight.yangtools.yang.model.util.repo.SchemaSourceProvider;
 import org.opendaylight.yangtools.yang.model.util.repo.SchemaSourceProviders;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.net.InetAddresses;
-
 /**
  *
  */
@@ -69,49 +75,39 @@ public final class NetconfConnectorModule extends org.opendaylight.controller.co
         checkNotNull(getBetweenAttemptsTimeoutMillis(), betweenAttemptsTimeoutMillisJmxAttribute);
         checkCondition(getBetweenAttemptsTimeoutMillis() > 0, "must be > 0", betweenAttemptsTimeoutMillisJmxAttribute);
 
+        // FIXME BUG-944 remove backwards compatibility
+        if(getClientDispatcher() == null) {
+            checkCondition(getBossThreadGroup() != null, "Client dispatcher was not set, thread groups have to be set instead", bossThreadGroupJmxAttribute);
+            checkCondition(getWorkerThreadGroup() != null, "Client dispatcher was not set, thread groups have to be set instead", workerThreadGroupJmxAttribute);
+        }
+
+        // Check username + password in case of ssh
+        if(getTcpOnly() == false) {
+            checkNotNull(getUsername(), usernameJmxAttribute);
+            checkNotNull(getPassword(), passwordJmxAttribute);
+        }
+
     }
 
     @Override
     public java.lang.AutoCloseable createInstance() {
+        ServiceReference<DataProviderService> serviceReference = bundleContext.getServiceReference(DataProviderService.class);
 
-        getDomRegistryDependency();
-        NetconfDevice device = new NetconfDevice(getIdentifier().getInstanceName());
-        String addressValue = getAddress();
+        DataProviderService dataProviderService =
+                bundleContext.getService(serviceReference);
 
-        Long connectionAttempts;
-        if (getMaxConnectionAttempts() != null && getMaxConnectionAttempts() > 0) {
-            connectionAttempts = getMaxConnectionAttempts();
-        } else {
-            logger.trace("Setting {} on {} to infinity", maxConnectionAttemptsJmxAttribute, this);
-            connectionAttempts = null;
-        }
-        long clientConnectionTimeoutMillis = getConnectionTimeoutMillis();
-        /*
-         * Uncomment after Switch to IP Address
-        if(getAddress().getIpv4Address() != null) {
-            addressValue = getAddress().getIpv4Address().getValue();
-        } else {
-            addressValue = getAddress().getIpv6Address().getValue();
-        }
-         */
-        double sleepFactor = 1.0;
-        int minSleep = 1000;
-        Long maxSleep = null;
-        Long deadline = null;
-        ReconnectStrategy strategy = new TimedReconnectStrategy(GlobalEventExecutor.INSTANCE, getBetweenAttemptsTimeoutMillis(),
-                minSleep, sleepFactor, maxSleep, connectionAttempts, deadline);
+        dataProviderService.readOperationalData(InstanceIdentifier.builder(
+                Nodes.class).child(Node.class).augmentation(NetconfNode.class).build());
 
-        device.setReconnectStrategy(strategy);
-
-        InetAddress addr = InetAddresses.forString(addressValue);
-        InetSocketAddress socketAddress = new InetSocketAddress(addr , getPort().intValue());
+        getDomRegistryDependency();
+        NetconfDevice device = new NetconfDevice(getIdentifier().getInstanceName());
 
+        device.setClientConfig(getClientConfig(device));
 
         device.setProcessingExecutor(getGlobalProcessingExecutor());
 
-        device.setSocketAddress(socketAddress);
         device.setEventExecutor(getEventExecutorDependency());
-        device.setDispatcher(createDispatcher(clientConnectionTimeoutMillis));
+        device.setDispatcher(getClientDispatcher() == null ? createDispatcher() : getClientDispatcherDependency());
         device.setSchemaSourceProvider(getGlobalNetconfSchemaProvider(bundleContext));
 
         getDomRegistryDependency().registerProvider(device, bundleContext);
@@ -120,12 +116,7 @@ public final class NetconfConnectorModule extends org.opendaylight.controller.co
     }
 
     private ExecutorService getGlobalProcessingExecutor() {
-        if(GLOBAL_PROCESSING_EXECUTOR == null) {
-
-            GLOBAL_PROCESSING_EXECUTOR = Executors.newCachedThreadPool();
-
-        }
-        return GLOBAL_PROCESSING_EXECUTOR;
+        return GLOBAL_PROCESSING_EXECUTOR == null ? Executors.newCachedThreadPool() : GLOBAL_PROCESSING_EXECUTOR;
     }
 
     private synchronized AbstractCachingSchemaSourceProvider<String, InputStream> getGlobalNetconfSchemaProvider(BundleContext bundleContext) {
@@ -139,18 +130,64 @@ public final class NetconfConnectorModule extends org.opendaylight.controller.co
         return GLOBAL_NETCONF_SOURCE_PROVIDER;
     }
 
-    private NetconfClientDispatcher createDispatcher(long clientConnectionTimeoutMillis) {
-        EventLoopGroup bossGroup = getBossThreadGroupDependency();
-        EventLoopGroup workerGroup = getWorkerThreadGroupDependency();
-        if(getTcpOnly()) {
-            return new NetconfClientDispatcher( bossGroup, workerGroup, clientConnectionTimeoutMillis);
-        } else {
-            AuthenticationHandler authHandler = new LoginPassword(getUsername(),getPassword());
-            return new NetconfSshClientDispatcher(authHandler , bossGroup, workerGroup, clientConnectionTimeoutMillis);
-        }
+    // FIXME BUG-944 remove backwards compatibility
+    /**
+     * @deprecated Use getClientDispatcherDependency method instead to retrieve injected dispatcher.
+     * This one creates new instance of NetconfClientDispatcher and will be removed in near future.
+     */
+    @Deprecated
+    private NetconfClientDispatcher createDispatcher() {
+        return new NetconfClientDispatcherImpl(getBossThreadGroupDependency(), getWorkerThreadGroupDependency(), new HashedWheelTimer());
     }
 
     public void setBundleContext(BundleContext bundleContext) {
         this.bundleContext = bundleContext;
     }
+
+    public NetconfClientConfiguration getClientConfig(final NetconfDevice device) {
+        InetSocketAddress socketAddress = getSocketAddress();
+        ReconnectStrategy strategy = getReconnectStrategy();
+        long clientConnectionTimeoutMillis = getConnectionTimeoutMillis();
+
+        return NetconfClientConfigurationBuilder.create()
+        .withAddress(socketAddress)
+        .withConnectionTimeoutMillis(clientConnectionTimeoutMillis)
+        .withReconnectStrategy(strategy)
+        .withSessionListener(new NetconfDeviceListener(device))
+        .withAuthHandler(new LoginPassword(getUsername(),getPassword()))
+        .withProtocol(getTcpOnly() ?
+                NetconfClientConfiguration.NetconfClientProtocol.TCP :
+                NetconfClientConfiguration.NetconfClientProtocol.SSH)
+        .build();
+    }
+
+    private ReconnectStrategy getReconnectStrategy() {
+        Long connectionAttempts;
+        if (getMaxConnectionAttempts() != null && getMaxConnectionAttempts() > 0) {
+            connectionAttempts = getMaxConnectionAttempts();
+        } else {
+            logger.trace("Setting {} on {} to infinity", maxConnectionAttemptsJmxAttribute, this);
+            connectionAttempts = null;
+        }
+        double sleepFactor = 1.0;
+        int minSleep = 1000;
+        Long maxSleep = null;
+        Long deadline = null;
+
+        return new TimedReconnectStrategy(GlobalEventExecutor.INSTANCE, getBetweenAttemptsTimeoutMillis(),
+                minSleep, sleepFactor, maxSleep, connectionAttempts, deadline);
+    }
+
+    private InetSocketAddress getSocketAddress() {
+        /*
+         * Uncomment after Switch to IP Address
+        if(getAddress().getIpv4Address() != null) {
+            addressValue = getAddress().getIpv4Address().getValue();
+        } else {
+            addressValue = getAddress().getIpv6Address().getValue();
+        }
+         */
+        InetAddress inetAddress = InetAddresses.forString(getAddress());
+        return new InetSocketAddress(inetAddress, getPort().intValue());
+    }
 }
index aa5c6f40a9a4f827c88aa97d9a72551d6e8fd94f..1209e88f5241a56b19b0140f3beb60be4120c8bd 100644 (file)
@@ -21,6 +21,7 @@ import static org.opendaylight.controller.sal.connect.netconf.NetconfMapping.toF
 import static org.opendaylight.controller.sal.connect.netconf.NetconfMapping.toRpcMessage;
 import static org.opendaylight.controller.sal.connect.netconf.NetconfMapping.wrap;
 
+import com.google.common.base.Preconditions;
 import java.io.InputStream;
 import java.net.InetSocketAddress;
 import java.net.URI;
@@ -38,6 +39,7 @@ import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler;
 import org.opendaylight.controller.md.sal.common.api.data.DataModification;
 import org.opendaylight.controller.md.sal.common.api.data.DataReader;
 import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
 import org.opendaylight.controller.sal.core.api.Broker.RpcRegistration;
 import org.opendaylight.controller.sal.core.api.Provider;
@@ -121,6 +123,7 @@ public class NetconfDevice implements Provider, //
 
     private boolean rollbackSupported;
 
+    private NetconfClientConfiguration clientConfig;
 
     public NetconfDevice(String name) {
         this.name = name;
@@ -134,11 +137,12 @@ public class NetconfDevice implements Provider, //
         checkState(schemaSourceProvider != null, "Schema Source Provider must be set.");
         checkState(eventExecutor != null, "Event executor must be set.");
 
-        listener = new NetconfDeviceListener(this);
+        Preconditions.checkArgument(clientConfig.getSessionListener() instanceof NetconfDeviceListener);
+        listener = (NetconfDeviceListener) clientConfig.getSessionListener();
 
         logger.info("Starting NETCONF Client {} for address {}", name, socketAddress);
 
-        dispatcher.createClient(socketAddress, listener, reconnectStrategy);
+        dispatcher.createClient(clientConfig);
     }
 
     Optional<SchemaContext> getSchemaContext() {
@@ -222,7 +226,7 @@ public class NetconfDevice implements Provider, //
 
         logger.debug("Client capabilities {}", capabilities);
         for (QName capability : capabilities) {
-            it.addLeaf(NETCONF_INVENTORY_INITIAL_CAPABILITY, capability);
+            it.addLeaf(NETCONF_INVENTORY_INITIAL_CAPABILITY, capability.toString());
         }
 
         logger.debug("Update device state transaction " + transaction.getIdentifier()
@@ -464,6 +468,11 @@ public class NetconfDevice implements Provider, //
     public void setDispatcher(final NetconfClientDispatcher dispatcher) {
         this.dispatcher = dispatcher;
     }
+
+    public void setClientConfig(final NetconfClientConfiguration clientConfig) {
+        this.clientConfig = clientConfig;
+    }
+
 }
 
 class NetconfDeviceSchemaContextProvider {
index 1dfc3b44d3191bf00427d9e5908ff0f68f7517e0..68667f0143489cf4f8f633b641224e68d5ca73e8 100644 (file)
@@ -41,8 +41,7 @@ import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 
-class NetconfDeviceListener implements NetconfClientSessionListener {
-
+public class NetconfDeviceListener implements NetconfClientSessionListener {
     private static final class Request {
         final UncancellableFuture<RpcResult<CompositeNode>> future;
         final NetconfMessage request;
index f0b711d368595dede27c14030b4d0d4ef64112a6..f76ec28624e158a3cfa5ad8050c13647b82e2163 100644 (file)
@@ -99,7 +99,11 @@ public class NetconfMapping {
 
         for (org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument component : Lists
                 .reverse(identifier.getPath())) {
-            previous = toNode(component, previous);
+            if (component instanceof NodeIdentifierWithPredicates) {
+                previous = toNode((NodeIdentifierWithPredicates)component, previous);
+            } else {
+                previous = toNode(component, previous);
+            }
         }
         return filter("subtree", previous);
     }
@@ -135,7 +139,7 @@ public class NetconfMapping {
             SchemaContext schemaContext = ctx.get();
             Set<NotificationDefinition> notifications = schemaContext.getNotifications();
             Document document = message.getDocument();
-            return XmlDocumentUtils.notificationToDomNodes(document, Optional.fromNullable(notifications));
+            return XmlDocumentUtils.notificationToDomNodes(document, Optional.fromNullable(notifications), ctx.get());
         }
         return null;
     }
@@ -192,7 +196,7 @@ public class NetconfMapping {
                 rawRpc = it.toInstance();
                 // sys(xmlData)
             } else {
-                rawRpc = (CompositeNode) toCompositeNode(message.getDocument());
+                rawRpc = (CompositeNode) toCompositeNode(message, context);
             }
         else {
             rawRpc = (CompositeNode) toCompositeNode(message.getDocument());
index abd935dd63e177ddfe23b1de713891351080c3ab..31c6bd0138b41b4fc06f102dc8736f35cce0681a 100644 (file)
@@ -59,7 +59,7 @@ class NetconfRemoteSchemaSourceProvider implements SchemaSourceProvider<String>
                     return Optional.of(schemaBody);
                 }
             }
-            logger.warn("YANG shcema was not successfully retrieved.");
+            logger.warn("YANG shcema was not successfully retrieved. Errors: {}", schemaReply.getErrors());
         } catch (InterruptedException | ExecutionException e) {
             logger.warn("YANG shcema was not successfully retrieved.", e);
         }
index f0fa452dc5c989138481a50ac89b120f02edb03c..d4dad11ec3b4f70e67ede2e1ddc4f690d59e9b52 100644 (file)
@@ -7,10 +7,11 @@ module odl-sal-netconf-connector-cfg {
        import threadpool {prefix th;}
        import netty {prefix netty;}
        import opendaylight-md-sal-dom {prefix dom;}
+    import odl-netconf-cfg { prefix cfg-net; revision-date 2014-04-08; }
 
     description
         "Service definition for Binding Aware MD-SAL.";
+
     revision "2013-10-28" {
         description
             "Initial revision";
@@ -26,7 +27,7 @@ module odl-sal-netconf-connector-cfg {
         leaf address {
             type string;
         }
-    
+
         leaf port {
             type uint32;
         }
@@ -36,7 +37,7 @@ module odl-sal-netconf-connector-cfg {
     augment "/config:modules/config:module/config:configuration" {
         case sal-netconf-connector {
             when "/config:modules/config:module/config:type = 'sal-netconf-connector'";
-            
+
             leaf address {
                 type string;
             }
@@ -44,7 +45,7 @@ module odl-sal-netconf-connector-cfg {
             leaf port {
                 type uint32;
             }
-            
+
             leaf tcp-only {
                 type boolean;
             }
@@ -52,10 +53,11 @@ module odl-sal-netconf-connector-cfg {
             leaf username {
                 type string;
             }
-            
+
             leaf password {
                 type string;
             }
+
             container dom-registry {
                 uses config:service-ref {
                     refine type {
@@ -65,17 +67,25 @@ module odl-sal-netconf-connector-cfg {
                 }
             }
 
+            // FIXME BUG-944 remove backwards compatibility
+            // Deprecated, replaced by client dispatcher.
+            // This dependency will be removed in near future and all configurations of netconf-connector need to be changed to use dispatcher dependency.
             container boss-thread-group {
                 uses config:service-ref {
                     refine type {
+                        mandatory false;
                         config:required-identity netty:netty-threadgroup;
                     }
                 }
             }
 
+            // FIXME BUG-944 remove backwards compatibility
+            // Deprecated, replaced by client dispatcher.
+            // This dependency will be removed in near future and all configurations of netconf-connector need to be changed to use dispatcher dependency.
             container worker-thread-group {
                 uses config:service-ref {
                     refine type {
+                        mandatory false;
                         config:required-identity netty:netty-threadgroup;
                     }
                 }
@@ -89,6 +99,16 @@ module odl-sal-netconf-connector-cfg {
                 }
             }
 
+            // Replaces thread group dependencies
+            container client-dispatcher {
+                uses config:service-ref {
+                    refine type {
+                        mandatory false;
+                        config:required-identity cfg-net:netconf-client-dispatcher;
+                    }
+                }
+            }
+
             leaf connection-timeout-millis {
                 description "Specifies timeout in milliseconds after which connection must be established.";
                 type uint32;
@@ -101,7 +121,6 @@ module odl-sal-netconf-connector-cfg {
                 default 0; // retry forever
             }
 
-
             leaf between-attempts-timeout-millis {
                 description "Timeout in milliseconds to wait between connection attempts.";
                 type uint16;
index a0bd99c5d2cc3dfc4b822125f43bdf104c8663ba..f1901d711259f1907aeb9f94817ffbf84694fffd 100644 (file)
@@ -588,7 +588,11 @@ class RestconfImpl implements RestconfService {
         }
         if (node instanceof CompositeNodeWrapper) {
             if ((node  as CompositeNodeWrapper).changeAllowed) {
-                normalizeNode(node as CompositeNodeWrapper, schema, null, mountPoint)
+                try {
+                    normalizeNode(node as CompositeNodeWrapper, schema, null, mountPoint)
+                } catch (NumberFormatException e) {
+                    throw new ResponseException(BAD_REQUEST,e.message)
+                }
             }
             return (node as CompositeNodeWrapper).unwrap()
         }
diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/CodecsExceptionsCatchingTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/CodecsExceptionsCatchingTest.java
new file mode 100644 (file)
index 0000000..767aaf3
--- /dev/null
@@ -0,0 +1,59 @@
+package org.opendaylight.controller.sal.restconf.impl.test;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.FileNotFoundException;
+
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.core.Application;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.test.JerseyTest;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.opendaylight.controller.sal.rest.impl.JsonToCompositeNodeProvider;
+import org.opendaylight.controller.sal.rest.impl.StructuredDataToJsonProvider;
+import org.opendaylight.controller.sal.rest.impl.StructuredDataToXmlProvider;
+import org.opendaylight.controller.sal.rest.impl.XmlToCompositeNodeProvider;
+import org.opendaylight.controller.sal.restconf.impl.ControllerContext;
+import org.opendaylight.controller.sal.restconf.impl.RestconfImpl;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+
+public class CodecsExceptionsCatchingTest extends JerseyTest {
+
+    private static RestconfImpl restConf;
+    private static ControllerContext controllerContext = ControllerContext.getInstance();
+
+    @BeforeClass
+    public static void init() throws FileNotFoundException {
+        restConf = RestconfImpl.getInstance();
+        controllerContext = ControllerContext.getInstance();
+        SchemaContext schemaContext = TestUtils.loadSchemaContext("/decoding-exception/yang");
+        controllerContext.setGlobalSchema(schemaContext);
+        restConf.setControllerContext(controllerContext);
+    }
+
+    @Override
+    protected Application configure() {
+        /* enable/disable Jersey logs to console */
+        // enable(TestProperties.LOG_TRAFFIC);
+        // enable(TestProperties.DUMP_ENTITY);
+        // enable(TestProperties.RECORD_LOG_LEVEL);
+        // set(TestProperties.RECORD_LOG_LEVEL, Level.ALL.intValue());
+        ResourceConfig resourceConfig = new ResourceConfig();
+        resourceConfig = resourceConfig.registerInstances(restConf, StructuredDataToXmlProvider.INSTANCE,
+                StructuredDataToJsonProvider.INSTANCE, XmlToCompositeNodeProvider.INSTANCE,
+                JsonToCompositeNodeProvider.INSTANCE);
+        return resourceConfig;
+    }
+
+    @Test
+    public void StringToNumberConversionError() {
+        Response response = target("/config/number:cont").request(MediaType.APPLICATION_XML).put(
+                Entity.entity("<cont xmlns=\"number\"><lf>3f</lf></cont>", MediaType.APPLICATION_XML));
+        String exceptionMessage = response.readEntity(String.class);
+        assertTrue(exceptionMessage.contains("Incorrect lexical representation of Integer value: 3f"));
+    }
+}
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/resources/decoding-exception/yang/number.yang b/opendaylight/md-sal/sal-rest-connector/src/test/resources/decoding-exception/yang/number.yang
new file mode 100644 (file)
index 0000000..c463882
--- /dev/null
@@ -0,0 +1,17 @@
+ module number {
+
+   namespace "number";
+   prefix "number";
+
+   revision 2014-04-24 {
+   }
+
+    
+
+    container cont {
+        leaf lf {
+            type uint8;
+        }
+        
+    }    
+ }
diff --git a/opendaylight/md-sal/sal-rest-docgen/pom.xml b/opendaylight/md-sal/sal-rest-docgen/pom.xml
new file mode 100644 (file)
index 0000000..423d2e4
--- /dev/null
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>sal-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.opendaylight.controller</groupId>
+  <artifactId>sal-rest-docgen</artifactId>
+  <packaging>bundle</packaging>
+
+  <properties>
+    <jaxrs-api.version>3.0.4.Final</jaxrs-api.version>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.datatype</groupId>
+      <artifactId>jackson-datatype-json-org</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+
+    <!-- Jax rs -->
+    <dependency>
+      <groupId>org.jboss.resteasy</groupId>
+      <artifactId>jaxrs-api</artifactId>
+      <version>${jaxrs-api.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.json</groupId>
+      <artifactId>json</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-core-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-common</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-model-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-model-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-parser-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-parser-impl</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>2.4.0</version>
+        <extensions>true</extensions>
+        <configuration>
+
+          <instructions>
+            <Bundle-Name>MD SAL Rest Api Doc Generator</Bundle-Name>
+            <Import-Package>*,
+              com.sun.jersey.spi.container.servlet</Import-Package>
+            <Bundle-Activator>org.opendaylight.controller.sal.rest.doc.DocProvider</Bundle-Activator>
+            <Web-ContextPath>/apidoc</Web-ContextPath>
+          </instructions>
+
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/DocProvider.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/DocProvider.java
new file mode 100644 (file)
index 0000000..9c18001
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc;
+
+import org.opendaylight.controller.sal.core.api.Broker;
+import org.opendaylight.controller.sal.core.api.Provider;
+import org.opendaylight.controller.sal.core.api.model.SchemaService;
+import org.opendaylight.controller.sal.rest.doc.impl.ApiDocGenerator;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Collection;
+import java.util.Collections;
+
+
+public class DocProvider implements BundleActivator,
+                                    ServiceTrackerCustomizer<Broker, Broker>,
+                                    Provider,
+                                    AutoCloseable {
+
+  private Logger _logger = LoggerFactory.getLogger(DocProvider.class);
+
+  private ServiceTracker<Broker, Broker> brokerServiceTracker;
+  private BundleContext bundleContext;
+  private Broker.ProviderSession session;
+
+  @Override
+  public void close() throws Exception {
+    stop(bundleContext);
+  }
+
+  @Override
+  public void onSessionInitiated(Broker.ProviderSession providerSession) {
+    SchemaService schemaService = providerSession.getService(SchemaService.class);
+    ApiDocGenerator.getInstance().setSchemaService(schemaService);
+
+    _logger.debug("Restconf API Explorer started");
+
+  }
+
+  @Override
+  public Collection<ProviderFunctionality> getProviderFunctionality() {
+    return Collections.emptySet();
+  }
+
+  @Override
+  public void start(BundleContext context) throws Exception {
+    bundleContext = context;
+    brokerServiceTracker = new ServiceTracker(context, Broker.class, this);
+    brokerServiceTracker.open();
+  }
+
+  @Override
+  public void stop(BundleContext context) throws Exception {
+    if (brokerServiceTracker != null)
+      brokerServiceTracker.close();
+
+    if (session != null)
+      session.close();
+  }
+
+  @Override
+  public Broker addingService(ServiceReference<Broker> reference) {
+    Broker broker = bundleContext.getService(reference);
+    session = broker.registerProvider(this, bundleContext);
+    return broker;
+  }
+
+  @Override
+  public void modifiedService(ServiceReference<Broker> reference, Broker service) {
+    if (session != null)
+      session.close();
+
+    Broker broker = bundleContext.getService(reference);
+    session = broker.registerProvider(this, bundleContext);
+  }
+
+  @Override
+  public void removedService(ServiceReference<Broker> reference, Broker service) {
+    bundleContext.ungetService(reference);
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/api/ApiDocService.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/api/ApiDocService.java
new file mode 100644 (file)
index 0000000..3542d6a
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.api;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+/**
+ * This service generates swagger
+ * (See <a href="https://helloreverb.com/developers/swagger">https://helloreverb.com/developers/swagger</a>)
+ * compliant documentation for RESTCONF APIs. The output of this is used by embedded Swagger UI.
+ */
+@Path("/")
+public interface ApiDocService {
+
+  /**
+   * Generates index document for Swagger UI. This document lists out all modules with link to get APIs for
+   * each module. The API for each module is served by <code> getDocByModule()</code> method.
+   *
+   * @param uriInfo
+   * @return
+   */
+  @GET
+  @Produces(MediaType.APPLICATION_JSON)
+  public Response getRootDoc(@Context javax.ws.rs.core.UriInfo uriInfo);
+
+  /**
+   * Generates Swagger compliant document listing APIs for module.
+   *
+   * @param module
+   * @param revision
+   * @param uriInfo
+   * @return
+   */
+  @GET
+  @Path("/{module},{revision}")
+  @Produces(MediaType.APPLICATION_JSON)
+  public Response getDocByModule(@PathParam("module") String module,
+                                 @PathParam("revision") String revision,
+                                 @Context javax.ws.rs.core.UriInfo uriInfo);
+
+  /**
+   * Redirects to embedded swagger ui.
+   *
+   * @param uriInfo
+   * @return
+   */
+  @GET
+  @Path("/ui")
+  @Produces(MediaType.TEXT_HTML)
+  public Response getApiExplorer(@Context javax.ws.rs.core.UriInfo uriInfo);
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocGenerator.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocGenerator.java
new file mode 100644 (file)
index 0000000..3662090
--- /dev/null
@@ -0,0 +1,306 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.impl;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule;
+import com.google.common.base.Preconditions;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.opendaylight.controller.sal.core.api.model.SchemaService;
+import org.opendaylight.controller.sal.rest.doc.model.builder.OperationBuilder;
+import org.opendaylight.controller.sal.rest.doc.swagger.*;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.ws.rs.core.UriInfo;
+import java.io.IOException;
+import java.net.URI;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * This class gathers all yang defined {@link Module}s and generates Swagger compliant documentation.
+ */
+public class ApiDocGenerator {
+
+  private static Logger _logger = LoggerFactory.getLogger(ApiDocGenerator.class);
+
+  private static final ApiDocGenerator INSTANCE = new ApiDocGenerator();
+  private ObjectMapper mapper = new ObjectMapper();
+  private final ModelGenerator jsonConverter = new ModelGenerator();
+
+  private SchemaService schemaService;
+
+  private final String API_VERSION = "1.0.0";
+  private final String SWAGGER_VERSION = "1.2";
+  private final String RESTCONF_CONTEXT_ROOT = "restconf";
+  private final DateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
+
+  //For now its {@link HashMap}. It will be changed to thread-safe Map when schema change listener is implemented.
+  private final Map<String, ApiDeclaration> MODULE_DOC_CACHE = new HashMap<String, ApiDeclaration>();
+
+  private ApiDocGenerator(){
+    mapper.registerModule(new JsonOrgModule());
+    mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
+  }
+
+  /**
+   * Returns singleton instance
+   * @return
+   */
+  public static ApiDocGenerator getInstance() {
+    return INSTANCE;
+  }
+
+  /**
+   *
+   * @param schemaService
+   */
+  public void setSchemaService(SchemaService schemaService) {
+    this.schemaService = schemaService;
+  }
+  /**
+   *
+   * @param uriInfo
+   * @return  list of modules converted to swagger compliant resource list.
+   */
+  public ResourceList getResourceListing(UriInfo uriInfo) {
+
+    Preconditions.checkState(schemaService != null);
+    SchemaContext schemaContext = schemaService.getGlobalContext();
+    Preconditions.checkState(schemaContext != null);
+
+    Set<Module> modules = schemaContext.getModules();
+
+    ResourceList resourceList = new ResourceList();
+    resourceList.setApiVersion(API_VERSION);
+    resourceList.setSwaggerVersion(SWAGGER_VERSION);
+
+    List<Resource> resources = new ArrayList<>(modules.size());
+    _logger.info("Modules found [{}]", modules.size());
+
+    for (Module module : modules) {
+      Resource resource = new Resource();
+      String revisionString = SIMPLE_DATE_FORMAT.format(module.getRevision());
+
+      _logger.debug("Working on [{},{}]...", module.getName(), revisionString);
+      ApiDeclaration doc = getApiDeclaration(module.getName(), revisionString, uriInfo);
+
+      if (doc != null) {
+        URI uri = uriInfo.getRequestUriBuilder().
+            path(generateCacheKey(module.getName(), revisionString)).
+            build();
+
+        resource.setPath(uri.toASCIIString());
+        resources.add(resource);
+      } else {
+        _logger.debug("Could not generate doc for {},{}", module.getName(), revisionString);
+      }
+    }
+
+    resourceList.setApis(resources);
+
+    return resourceList;
+  }
+
+  public ApiDeclaration getApiDeclaration(String module, String revision, UriInfo uriInfo) {
+
+    //Lookup cache
+    String cacheKey = generateCacheKey(module, revision);
+
+    if (MODULE_DOC_CACHE.containsKey(cacheKey)) {
+      _logger.debug("Serving from cache for {}", cacheKey);
+      return MODULE_DOC_CACHE.get(cacheKey);
+    }
+
+    Date rev = null;
+    try {
+      rev = SIMPLE_DATE_FORMAT.parse(revision);
+    } catch (ParseException e) {
+      throw new IllegalArgumentException(e);
+    }
+
+    SchemaContext schemaContext = schemaService.getGlobalContext();
+    Preconditions.checkState(schemaContext != null);
+
+    Module m = schemaContext.findModuleByName(module, rev);
+    Preconditions.checkArgument(m != null, "Could not find module by name,revision: " + module + "," + revision);
+
+    String basePath = new StringBuilder(uriInfo.getBaseUri().getScheme())
+        .append("://")
+        .append(uriInfo.getBaseUri().getHost())
+        .append(":")
+        .append(uriInfo.getBaseUri().getPort())
+        .append("/")
+        .append(RESTCONF_CONTEXT_ROOT)
+        .toString();
+
+    ApiDeclaration doc = getSwaggerDocSpec(m, basePath);
+    MODULE_DOC_CACHE.put(cacheKey, doc);
+    return doc;
+  }
+
+  public ApiDeclaration getSwaggerDocSpec(Module m, String basePath) {
+    ApiDeclaration doc = new ApiDeclaration();
+    doc.setApiVersion(API_VERSION);
+    doc.setSwaggerVersion(SWAGGER_VERSION);
+    doc.setBasePath(basePath);
+    doc.setProduces(Arrays.asList("application/json", "application/xml"));
+
+    List<Api> apis = new ArrayList<Api>();
+
+    Set<DataSchemaNode> dataSchemaNodes = m.getChildNodes();
+    _logger.debug("child nodes size [{}]", dataSchemaNodes.size());
+    for (DataSchemaNode node : dataSchemaNodes) {
+      if ((node instanceof ListSchemaNode) || (node instanceof ContainerSchemaNode)) {
+
+        _logger.debug("Is Configuration node [{}] [{}]", node.isConfiguration(), node.getQName().getLocalName());
+
+        List<Parameter> pathParams = null;
+        if (node.isConfiguration()) {
+          pathParams = new ArrayList<Parameter>();
+          String resourcePath = "/config/" + m.getName() + ":";
+          addApis(node, apis, resourcePath, pathParams, true);
+
+        }
+
+        pathParams = new ArrayList<Parameter>();
+        String resourcePath = "/operational/" + m.getName() + ":";
+        addApis(node, apis, resourcePath, pathParams, false);
+      }
+    }
+
+    Set<RpcDefinition> rpcs = m.getRpcs();
+    for (RpcDefinition rpcDefinition : rpcs) {
+      String resourcePath = "/operations/" + m.getName() + ":";
+      addRpcs(rpcDefinition, apis, resourcePath);
+
+    }
+    _logger.debug("Number of APIs found [{}]", apis.size());
+    doc.setApis(apis);
+    JSONObject models = null;
+
+    try {
+      models = jsonConverter.convertToJsonSchema(m);
+      doc.setModels(models);
+      _logger.debug(mapper.writeValueAsString(doc));
+    } catch (IOException | JSONException e) {
+      e.printStackTrace();
+    }
+
+    return doc;
+  }
+
+  private String generateCacheKey(Module m) {
+    return generateCacheKey(m.getName(), SIMPLE_DATE_FORMAT.format(m.getRevision()));
+  }
+
+  private String generateCacheKey(String module, String revision) {
+    return module + "," + revision;
+  }
+
+  private void addApis(DataSchemaNode node,
+                       List<Api> apis,
+                       String parentPath,
+                       List<Parameter> parentPathParams,
+                       boolean addConfigApi) {
+
+    Api api = new Api();
+    List<Parameter> pathParams = new ArrayList<Parameter>(parentPathParams);
+
+    String resourcePath = parentPath + createPath(node, pathParams) + "/";
+    _logger.debug("Adding path: [{}]", resourcePath);
+    api.setPath(resourcePath);
+    api.setOperations(operations(node, pathParams, addConfigApi));
+    apis.add(api);
+    if ((node instanceof ListSchemaNode) || (node instanceof ContainerSchemaNode)) {
+      DataNodeContainer schemaNode = (DataNodeContainer) node;
+      Set<DataSchemaNode> dataSchemaNodes = schemaNode.getChildNodes();
+
+      for (DataSchemaNode childNode : dataSchemaNodes) {
+        addApis(childNode, apis, resourcePath, pathParams, addConfigApi);
+      }
+    }
+
+  }
+
+  private void addRpcs(RpcDefinition rpcDefn, List<Api> apis, String parentPath) {
+    Api rpc = new Api();
+    String resourcePath = parentPath + rpcDefn.getQName().getLocalName();
+    rpc.setPath(resourcePath);
+
+    Operation operationSpec = new Operation();
+    operationSpec.setMethod("POST");
+    operationSpec.setNotes(rpcDefn.getDescription());
+    operationSpec.setNickname(rpcDefn.getQName().getLocalName());
+    rpc.setOperations(Arrays.asList(operationSpec));
+
+    apis.add(rpc);
+  }
+
+  /**
+   * @param node
+   * @param pathParams
+   * @return
+   */
+  private List<Operation> operations(DataSchemaNode node, List<Parameter> pathParams, boolean isConfig) {
+    List<Operation> operations = new ArrayList<>();
+
+    OperationBuilder.Get getBuilder = new OperationBuilder.Get(node);
+    operations.add(getBuilder.pathParams(pathParams).build());
+
+    if (isConfig) {
+      OperationBuilder.Post postBuilder = new OperationBuilder.Post(node);
+      operations.add(postBuilder.pathParams(pathParams).build());
+
+      OperationBuilder.Put putBuilder = new OperationBuilder.Put(node);
+      operations.add(putBuilder.pathParams(pathParams).build());
+
+      OperationBuilder.Delete deleteBuilder = new OperationBuilder.Delete(node);
+      operations.add(deleteBuilder.pathParams(pathParams).build());
+    }
+    return operations;
+  }
+
+  private String createPath(final DataSchemaNode schemaNode, List<Parameter> pathParams) {
+    ArrayList<LeafSchemaNode> pathListParams = new ArrayList<LeafSchemaNode>();
+    StringBuilder path = new StringBuilder();
+    QName _qName = schemaNode.getQName();
+    String localName = _qName.getLocalName();
+    path.append(localName);
+
+    if ((schemaNode instanceof ListSchemaNode)) {
+      final List<QName> listKeys = ((ListSchemaNode) schemaNode).getKeyDefinition();
+      for (final QName listKey : listKeys) {
+        {
+          DataSchemaNode _dataChildByName = ((DataNodeContainer) schemaNode).getDataChildByName(listKey);
+          pathListParams.add(((LeafSchemaNode) _dataChildByName));
+
+          String pathParamIdentifier = new StringBuilder("/{").append(listKey.getLocalName()).append("}").toString();
+          path.append(pathParamIdentifier);
+
+          Parameter pathParam = new Parameter();
+          pathParam.setName(listKey.getLocalName());
+          pathParam.setDescription(_dataChildByName.getDescription());
+          pathParam.setType("string");
+          pathParam.setParamType("path");
+
+          pathParams.add(pathParam);
+        }
+      }
+    }
+    return path.toString();
+  }
+
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocServiceImpl.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocServiceImpl.java
new file mode 100644 (file)
index 0000000..241c8b8
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.impl;
+
+import org.opendaylight.controller.sal.rest.doc.api.ApiDocService;
+import org.opendaylight.controller.sal.rest.doc.swagger.ApiDeclaration;
+import org.opendaylight.controller.sal.rest.doc.swagger.ResourceList;
+
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+/**
+ * This service generates swagger
+ * (See <a href="https://helloreverb.com/developers/swagger">https://helloreverb.com/developers/swagger</a>)
+ * compliant documentation for RESTCONF APIs. The output of this is used by embedded Swagger UI.
+ */
+public class ApiDocServiceImpl implements ApiDocService {
+
+  private static final ApiDocService INSTANCE = new ApiDocServiceImpl();
+
+  public static ApiDocService getInstance(){
+    return INSTANCE;
+  }
+
+  /**
+   * Generates index document for Swagger UI. This document lists out all modules with link to get APIs for
+   * each module. The API for each module is served by <code> getDocByModule()</code> method.
+   *
+   * @param uriInfo
+   * @return
+   */
+  @Override
+  public Response getRootDoc(UriInfo uriInfo) {
+
+    ApiDocGenerator generator = ApiDocGenerator.getInstance();
+    ResourceList rootDoc = generator.getResourceListing(uriInfo);
+
+    return Response.ok(rootDoc).build();
+  }
+
+  /**
+   * Generates Swagger compliant document listing APIs for module.
+   *
+   * @param module
+   * @param revision
+   * @param uriInfo
+   * @return
+   */
+  @Override
+  public Response getDocByModule(String module, String revision, UriInfo uriInfo) {
+    ApiDocGenerator generator = ApiDocGenerator.getInstance();
+
+    ApiDeclaration doc = generator.getApiDeclaration(module, revision, uriInfo);
+    return Response.ok(doc).build();
+  }
+
+  /**
+   * Redirects to embedded swagger ui.
+   *
+   * @param uriInfo
+   * @return
+   */
+  @Override
+  public Response getApiExplorer(UriInfo uriInfo) {
+    return Response.seeOther(uriInfo.getBaseUriBuilder().path("../explorer/index.html").build()).build();
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ModelGenerator.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/ModelGenerator.java
new file mode 100644 (file)
index 0000000..597051e
--- /dev/null
@@ -0,0 +1,498 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.impl;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.opendaylight.yangtools.yang.model.api.*;
+import org.opendaylight.yangtools.yang.model.api.type.*;
+import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
+import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair;
+import org.opendaylight.yangtools.yang.model.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * Generates JSON Schema for data defined in Yang
+ */
+public class ModelGenerator {
+
+  private static Logger _logger = LoggerFactory.getLogger(ModelGenerator.class);
+
+  private static final String BASE_64 = "base64";
+  private static final String BINARY_ENCODING_KEY = "binaryEncoding";
+  private static final String MEDIA_KEY = "media";
+  private static final String ONE_OF_KEY = "oneOf";
+  private static final String UNIQUE_ITEMS_KEY = "uniqueItems";
+  private static final String MAX_ITEMS = "maxItems";
+  private static final String MIN_ITEMS = "minItems";
+  private static final String SCHEMA_URL = "http://json-schema.org/draft-04/schema";
+  private static final String SCHEMA_KEY = "$schema";
+  private static final String MAX_LENGTH_KEY = "maxLength";
+  private static final String MIN_LENGTH_KEY = "minLength";
+  private static final String REQUIRED_KEY = "required";
+  private static final String REF_KEY = "$ref";
+  private static final String ITEMS_KEY = "items";
+  private static final String TYPE_KEY = "type";
+  private static final String PROPERTIES_KEY = "properties";
+  private static final String DESCRIPTION_KEY = "description";
+  private static final String OBJECT_TYPE = "object";
+  private static final String ARRAY_TYPE = "array";
+  private static final String ENUM = "enum";
+  private static final String INTEGER = "integer";
+  private static final String NUMBER = "number";
+  private static final String BOOLEAN = "boolean";
+  private static final String STRING = "string";
+
+  private static final Map<Class<? extends TypeDefinition<?>>, String> YANG_TYPE_TO_JSON_TYPE_MAPPING;
+
+  static {
+    Map<Class<? extends TypeDefinition<?>>, String> tempMap1 = new HashMap<Class<? extends TypeDefinition<?>>, String>(10);
+    tempMap1.put(StringType.class , STRING);
+    tempMap1.put(BooleanType.class , BOOLEAN);
+    tempMap1.put(Int8.class , INTEGER);
+    tempMap1.put(Int16.class , INTEGER);
+    tempMap1.put(Int32.class , INTEGER);
+    tempMap1.put(Int64.class , INTEGER);
+    tempMap1.put(Uint16.class , INTEGER);
+    tempMap1.put(Uint32.class , INTEGER);
+    tempMap1.put(Uint64.class , INTEGER);
+    tempMap1.put(Uint8.class , INTEGER);
+    tempMap1.put(Decimal64.class , NUMBER);
+    tempMap1.put(EnumerationType.class , ENUM);
+    //TODO: Binary type
+
+    YANG_TYPE_TO_JSON_TYPE_MAPPING = Collections.unmodifiableMap(tempMap1);
+  }
+
+  public ModelGenerator(){
+  }
+
+  public JSONObject convertToJsonSchema(Module module) throws IOException, JSONException {
+    JSONObject models = new JSONObject();
+    processContainers(module, models);
+    processRPCs(module, models);
+
+    return models;
+  }
+
+
+
+  private void processContainers(Module module, JSONObject models) throws IOException, JSONException {
+
+    String moduleName = module.getName();
+    Set<DataSchemaNode> childNodes =  module.getChildNodes();
+
+    for(DataSchemaNode childNode : childNodes){
+      JSONObject moduleJSON=null;
+      String filename = childNode.getQName().getLocalName();
+                       /*
+                        * For every container in the module
+                        */
+      if(childNode instanceof ContainerSchemaNode) {
+        moduleJSON = processContainer((ContainerSchemaNode)childNode, moduleName, true, models);
+      }
+
+      if(moduleJSON!=null) {
+        _logger.debug("Adding model for [{}]", filename);
+        moduleJSON.put("id", filename);
+        models.put(filename, moduleJSON);
+      }
+    }
+
+  }
+
+
+  /**
+   * Process the RPCs for a Module
+   * Spits out a file each of the name <rpcName>-input.json
+   * and <rpcName>-output.json for each RPC that contains
+   * input & output elements
+   *
+   * @param module
+   * @throws JSONException
+   * @throws IOException
+   */
+  private void processRPCs(Module module, JSONObject models) throws JSONException, IOException {
+
+    Set<RpcDefinition> rpcs =  module.getRpcs();
+    String moduleName = module.getName();
+    for(RpcDefinition rpc: rpcs) {
+
+      ContainerSchemaNode input = rpc.getInput();
+      if(input!=null) {
+        JSONObject inputJSON = processContainer(input, moduleName, true, models);
+        String filename = rpc.getQName().getLocalName() + "-input";
+        inputJSON.put("id", filename);
+        //writeToFile(filename, inputJSON.toString(2), moduleName);
+        models.put(filename, inputJSON);
+      }
+
+      ContainerSchemaNode output = rpc.getOutput();
+      if(output!=null) {
+        JSONObject outputJSON = processContainer(output, moduleName, true, models);
+        String filename = rpc.getQName().getLocalName() + "-output";
+        outputJSON.put("id", filename);
+        models.put(filename, outputJSON);
+      }
+    }
+  }
+
+
+  /**
+   * Processes the container node and populates the moduleJSON
+   *
+   * @param container
+   * @param moduleName
+   * @throws JSONException
+   * @throws IOException
+   */
+  private JSONObject processContainer(ContainerSchemaNode container, String moduleName, boolean addSchemaStmt, JSONObject models) throws JSONException, IOException{
+    JSONObject moduleJSON = getSchemaTemplate();
+    if(addSchemaStmt) {
+      moduleJSON = getSchemaTemplate();
+    } else {
+      moduleJSON = new JSONObject();
+    }
+    moduleJSON.put(TYPE_KEY, OBJECT_TYPE);
+
+    String containerDescription = container.getDescription();
+    moduleJSON.put(DESCRIPTION_KEY, containerDescription);
+
+    Set<DataSchemaNode> containerChildren = ((ContainerSchemaNode)container).getChildNodes();
+    JSONObject properties = processChildren(containerChildren, moduleName, models);
+    moduleJSON.put(PROPERTIES_KEY, properties);
+    return moduleJSON;
+  }
+
+  /**
+   * Processes the nodes
+   * @param nodes
+   * @param moduleName
+   * @return
+   * @throws JSONException
+   * @throws IOException
+   */
+  private JSONObject processChildren(Set<DataSchemaNode> nodes, String moduleName, JSONObject models) throws JSONException, IOException {
+
+    JSONObject properties = new JSONObject();
+
+    for(DataSchemaNode node : nodes){
+      String name = node.getQName().getLocalName();
+      JSONObject property = null;
+      if(node instanceof LeafSchemaNode) {
+        property = processLeafNode((LeafSchemaNode)node);
+      } else if (node instanceof ListSchemaNode) {
+        property = processListSchemaNode((ListSchemaNode)node, moduleName, models);
+
+      } else if (node instanceof LeafListSchemaNode) {
+        property = processLeafListNode((LeafListSchemaNode)node);
+
+      } else if (node instanceof ChoiceNode) {
+        property = processChoiceNode((ChoiceNode)node, moduleName, models);
+
+      } else if (node instanceof AnyXmlSchemaNode) {
+        property = processAnyXMLNode((AnyXmlSchemaNode)node);
+
+      } else if (node instanceof ContainerSchemaNode) {
+        property = processContainer((ContainerSchemaNode)node, moduleName, false, models);
+
+      } else {
+        throw new IllegalArgumentException("Unknown DataSchemaNode type: " + node.getClass());
+      }
+
+      property.putOpt(DESCRIPTION_KEY, node.getDescription());
+      properties.put(name, property);
+    }
+    return properties;
+  }
+
+  /**
+   *
+   * @param listNode
+   * @throws JSONException
+   */
+  private JSONObject processLeafListNode(LeafListSchemaNode listNode) throws JSONException {
+    JSONObject props = new JSONObject();
+    props.put(TYPE_KEY, ARRAY_TYPE);
+
+    JSONObject itemsVal = new JSONObject();
+    processTypeDef(listNode.getType(), itemsVal);
+    props.put(ITEMS_KEY, itemsVal);
+
+    ConstraintDefinition constraints = listNode.getConstraints();
+    processConstraints(constraints, props);
+
+    return props;
+  }
+
+  /**
+   *
+   * @param choiceNode
+   * @param moduleName
+   * @throws JSONException
+   * @throws IOException
+   */
+  private JSONObject processChoiceNode(ChoiceNode choiceNode, String moduleName, JSONObject models) throws JSONException, IOException {
+
+    Set<ChoiceCaseNode> cases = choiceNode.getCases();
+
+    JSONArray choiceProps = new JSONArray();
+    for(ChoiceCaseNode choiceCase: cases) {
+      String choiceName = choiceCase.getQName().getLocalName();
+      JSONObject choiceProp = processChildren(choiceCase.getChildNodes(), moduleName, models);
+      JSONObject choiceObj = new JSONObject();
+      choiceObj.put(choiceName, choiceProp);
+      choiceObj.put(TYPE_KEY, OBJECT_TYPE);
+      choiceProps.put(choiceObj);
+    }
+
+    JSONObject oneOfProps = new JSONObject();
+    oneOfProps.put(ONE_OF_KEY, choiceProps);
+    oneOfProps.put(TYPE_KEY, OBJECT_TYPE);
+
+    return oneOfProps;
+  }
+
+
+  /**
+   *
+   * @param constraints
+   * @param props
+   * @throws JSONException
+   */
+  private void processConstraints(ConstraintDefinition constraints, JSONObject props) throws JSONException {
+    boolean isMandatory = constraints.isMandatory();
+    props.put(REQUIRED_KEY, isMandatory);
+
+    Integer minElements = constraints.getMinElements();
+    Integer maxElements = constraints.getMaxElements();
+    if(minElements !=null) {
+      props.put(MIN_ITEMS, minElements);
+    }
+    if(maxElements !=null) {
+      props.put(MAX_ITEMS, maxElements);
+    }
+  }
+
+  /**
+   * Parses a ListSchema node.
+   *
+   * Due to a limitation of the RAML--->JAX-RS tool, sub-properties
+   * must be in a separate JSON schema file. Hence, we have to write
+   * some properties to a new file, while continuing to process the rest.
+   *
+   * @param listNode
+   * @param moduleName
+   * @return
+   * @throws JSONException
+   * @throws IOException
+   */
+  private JSONObject processListSchemaNode(ListSchemaNode listNode, String moduleName, JSONObject models) throws JSONException, IOException {
+
+    Set<DataSchemaNode> listChildren = listNode.getChildNodes();
+    String fileName = listNode.getQName().getLocalName();
+
+    JSONObject childSchemaProperties = processChildren(listChildren, moduleName, models);
+    JSONObject childSchema = getSchemaTemplate();
+    childSchema.put(TYPE_KEY, OBJECT_TYPE);
+    childSchema.put(PROPERTIES_KEY, childSchemaProperties);
+
+               /*
+                * Due to a limitation of the RAML--->JAX-RS tool, sub-properties
+                * must be in a separate JSON schema file. Hence, we have to write
+                * some properties to a new file, while continuing to process the rest.
+                */
+    //writeToFile(fileName, childSchema.toString(2), moduleName);
+    childSchema.put("id", fileName);
+    models.put(fileName, childSchema);
+
+
+    JSONObject listNodeProperties = new JSONObject();
+    listNodeProperties.put(TYPE_KEY, ARRAY_TYPE);
+
+    JSONObject items = new JSONObject();
+    items.put(REF_KEY,fileName );
+    listNodeProperties.put(ITEMS_KEY, items);
+
+    return listNodeProperties;
+
+  }
+
+  /**
+   *
+   * @param leafNode
+   * @return
+   * @throws JSONException
+   */
+  private JSONObject processLeafNode(LeafSchemaNode leafNode) throws JSONException {
+    JSONObject property = new JSONObject();
+
+    String leafDescription = leafNode.getDescription();
+    property.put(DESCRIPTION_KEY, leafDescription);
+
+    processConstraints(leafNode.getConstraints(), property);
+    processTypeDef(leafNode.getType(), property);
+
+    return property;
+  }
+
+  /**
+   *
+   * @param leafNode
+   * @return
+   * @throws JSONException
+   */
+  private JSONObject processAnyXMLNode(AnyXmlSchemaNode leafNode) throws JSONException {
+    JSONObject property = new JSONObject();
+
+    String leafDescription = leafNode.getDescription();
+    property.put(DESCRIPTION_KEY, leafDescription);
+
+    processConstraints(leafNode.getConstraints(), property);
+
+    return property;
+  }
+
+  /**
+   * @param property
+   * @throws JSONException
+   */
+  private void processTypeDef(TypeDefinition<?> leafTypeDef, JSONObject property) throws JSONException {
+
+    if(leafTypeDef instanceof ExtendedType){
+      processExtendedType(leafTypeDef, property);
+    } else if (leafTypeDef instanceof EnumerationType) {
+      processEnumType((EnumerationType)leafTypeDef, property);
+
+    } else if (leafTypeDef instanceof BitsTypeDefinition) {
+      processBitsType((BitsTypeDefinition)leafTypeDef, property);
+
+    } else if (leafTypeDef instanceof UnionTypeDefinition) {
+      processUnionType((UnionTypeDefinition)leafTypeDef, property);
+
+    } else if (leafTypeDef instanceof IdentityrefTypeDefinition) {
+      property.putOpt(TYPE_KEY, "object");
+    } else if (leafTypeDef instanceof BinaryTypeDefinition) {
+      processBinaryType((BinaryTypeDefinition)leafTypeDef, property);
+    } else {
+      //System.out.println("In else: " + leafTypeDef.getClass());
+      String jsonType = YANG_TYPE_TO_JSON_TYPE_MAPPING.get(leafTypeDef.getClass());
+      if(jsonType==null) {
+        jsonType = "object";
+      }
+      property.putOpt(TYPE_KEY, jsonType);
+    }
+  }
+
+  /**
+   *
+   * @param leafTypeDef
+   * @param property
+   * @throws JSONException
+   */
+  private void processExtendedType(TypeDefinition<?> leafTypeDef, JSONObject property) throws JSONException {
+    Object leafBaseType = leafTypeDef.getBaseType();
+    if(leafBaseType instanceof ExtendedType){
+      //recursively process an extended type until we hit a base type
+      processExtendedType((TypeDefinition<?>)leafBaseType, property);
+    } else {
+      List<LengthConstraint> lengthConstraints = ((ExtendedType) leafTypeDef).getLengthConstraints();
+      for(LengthConstraint lengthConstraint: lengthConstraints) {
+        Number min = lengthConstraint.getMin();
+        Number max = lengthConstraint.getMax();
+        property.putOpt(MIN_LENGTH_KEY, min);
+        property.putOpt(MAX_LENGTH_KEY, max);
+      }
+      String jsonType = YANG_TYPE_TO_JSON_TYPE_MAPPING.get(leafBaseType.getClass());
+      property.putOpt(TYPE_KEY,jsonType );
+    }
+
+  }
+
+  /*
+   *
+   */
+  private void processBinaryType(BinaryTypeDefinition binaryType, JSONObject property) throws JSONException {
+    property.put(TYPE_KEY, STRING);
+    JSONObject media = new JSONObject();
+    media.put(BINARY_ENCODING_KEY, BASE_64);
+    property.put(MEDIA_KEY, media);
+  }
+
+  /**
+   *
+   * @param enumLeafType
+   * @param property
+   * @throws JSONException
+   */
+  private void processEnumType(EnumerationType enumLeafType, JSONObject property) throws JSONException {
+    List<EnumPair> enumPairs = enumLeafType.getValues();
+    List<String> enumNames = new ArrayList<String>();
+    for(EnumPair enumPair: enumPairs) {
+      enumNames.add(enumPair.getName());
+    }
+    property.putOpt(ENUM, new JSONArray(enumNames));
+  }
+
+  /**
+   *
+   * @param bitsType
+   * @param property
+   * @throws JSONException
+   */
+  private void processBitsType(BitsTypeDefinition bitsType, JSONObject property) throws JSONException{
+    property.put(TYPE_KEY, ARRAY_TYPE);
+    property.put(MIN_ITEMS, 0);
+    property.put(UNIQUE_ITEMS_KEY, true);
+    JSONArray enumValues = new JSONArray();
+
+    List<Bit> bits = bitsType.getBits();
+    for(Bit bit: bits) {
+      enumValues.put(bit.getName());
+    }
+    JSONObject itemsValue = new JSONObject();
+    itemsValue.put(ENUM, enumValues);
+    property.put(ITEMS_KEY, itemsValue);
+  }
+
+
+  /**
+   *
+   * @param unionType
+   * @param property
+   * @throws JSONException
+   */
+  private void processUnionType(UnionTypeDefinition unionType, JSONObject property) throws JSONException{
+
+    List<TypeDefinition<?>> unionTypes = unionType.getTypes();
+    JSONArray unionArray = new JSONArray();
+    for(TypeDefinition<?> typeDef: unionTypes) {
+      unionArray.put(YANG_TYPE_TO_JSON_TYPE_MAPPING.get(typeDef.getClass()));
+    }
+    property.put(TYPE_KEY, unionArray);
+  }
+
+
+  /**
+   * Helper method to generate a pre-filled
+   * JSON schema object.
+   * @return
+   * @throws JSONException
+   */
+  private JSONObject getSchemaTemplate() throws JSONException {
+    JSONObject schemaJSON = new JSONObject();
+    schemaJSON.put(SCHEMA_KEY, SCHEMA_URL);
+
+    return schemaJSON;
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/jaxrs/ApiDocApplication.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/jaxrs/ApiDocApplication.java
new file mode 100644 (file)
index 0000000..bec34b2
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.jaxrs;
+
+import org.opendaylight.controller.sal.rest.doc.impl.ApiDocServiceImpl;
+
+import javax.ws.rs.core.Application;
+import java.util.HashSet;
+import java.util.Set;
+
+public class ApiDocApplication extends Application {
+  @Override
+  public Set<Object> getSingletons() {
+    Set<Object> singletons = new HashSet<>();
+    singletons.add(ApiDocServiceImpl.getInstance());
+    singletons.add(new JaxbContextResolver());
+    return singletons;
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/jaxrs/JaxbContextResolver.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/jaxrs/JaxbContextResolver.java
new file mode 100644 (file)
index 0000000..5508507
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.jaxrs;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule;
+import org.opendaylight.controller.sal.rest.doc.swagger.ApiDeclaration;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.ext.ContextResolver;
+import javax.ws.rs.ext.Provider;
+
+@Provider
+@Consumes(MediaType.APPLICATION_JSON)
+@Produces(MediaType.APPLICATION_JSON)
+public class JaxbContextResolver implements ContextResolver<ObjectMapper> {
+
+  private ObjectMapper ctx;
+
+  public JaxbContextResolver(){
+    ctx = new ObjectMapper();
+    ctx.registerModule(new JsonOrgModule());
+    ctx.getSerializationConfig().withSerializationInclusion(JsonInclude.Include.ALWAYS);
+  }
+
+  @Override
+  public ObjectMapper getContext(Class<?> aClass) {
+
+    if (ApiDeclaration.class.isAssignableFrom(aClass)){
+      return ctx;
+    }
+
+    return null;//must return null so that jax-rs can continue context search
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/model/builder/OperationBuilder.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/model/builder/OperationBuilder.java
new file mode 100644 (file)
index 0000000..fc890d5
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.model.builder;
+
+import org.opendaylight.controller.sal.rest.doc.swagger.Operation;
+import org.opendaylight.controller.sal.rest.doc.swagger.Parameter;
+import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ */
+public final class OperationBuilder {
+
+  /**
+   *
+   */
+  public static class Get{
+
+    protected Operation spec;
+    protected DataSchemaNode schemaNode;
+    private final String METHOD_NAME = "GET";
+
+    public Get(DataSchemaNode node){
+      this.schemaNode = node;
+      spec = new Operation();
+      spec.setMethod(METHOD_NAME);
+      spec.setNickname(METHOD_NAME + "-" + node.getQName().getLocalName());
+      spec.setType(node.getQName().getLocalName());
+      spec.setNotes(node.getDescription());
+    }
+
+    public Get pathParams(List<Parameter> params){
+      List<Parameter> pathParameters = new ArrayList<>(params);
+      spec.setParameters(pathParameters);
+      return this;
+    }
+
+    public Operation build(){
+      return spec;
+    }
+  }
+
+  /**
+   *
+   */
+  public static class Put{
+    protected Operation spec;
+    protected DataSchemaNode schemaNode;
+    private final String METHOD_NAME = "PUT";
+
+    public Put(DataSchemaNode node){
+      this.schemaNode = node;
+      spec = new Operation();
+      spec.setType(node.getQName().getLocalName());
+      spec.setNotes(node.getDescription());
+    }
+
+    public Put pathParams(List<Parameter> params){
+      List<Parameter> parameters = new ArrayList<>(params);
+      Parameter payload = new Parameter();
+      payload.setParamType("body");
+      payload.setType(schemaNode.getQName().getLocalName());
+      parameters.add(payload);
+      spec.setParameters(parameters);
+      return this;
+    }
+
+    public Operation build(){
+      spec.setMethod(METHOD_NAME);
+      spec.setNickname(METHOD_NAME + "-" + schemaNode.getQName().getLocalName());
+      return spec;
+    }
+  }
+
+  /**
+   *
+   */
+  public static final class Post extends Put{
+
+    private final String METHOD_NAME = "POST";
+
+    public Post(DataSchemaNode node){
+      super(node);
+    }
+
+    public Operation build(){
+      spec.setMethod(METHOD_NAME);
+      spec.setNickname(METHOD_NAME + "-" + schemaNode.getQName().getLocalName());
+      return spec;
+    }
+  }
+
+  /**
+   *
+   */
+  public static final class Delete extends Get {
+    private final String METHOD_NAME = "DELETE";
+
+    public Delete(DataSchemaNode node){
+      super(node);
+    }
+
+    public Operation build(){
+      spec.setMethod(METHOD_NAME);
+      spec.setNickname(METHOD_NAME + "-" + schemaNode.getQName().getLocalName());
+      spec.setType(null);
+      return spec;
+    }
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Api.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Api.java
new file mode 100644 (file)
index 0000000..a2be741
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.swagger;
+
+import java.util.List;
+
+/**
+ * Implementation of swagger spec
+ * (see <a href="https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#522-api-object">
+ *   https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#522-api-object</a>)
+ */
+public class Api {
+
+  private String path;
+  private List<Operation> operations;
+
+  public String getPath() {
+    return path;
+  }
+
+  public void setPath(String path) {
+    this.path = path;
+  }
+
+  public List<Operation> getOperations() {
+    return operations;
+  }
+
+  public void setOperations(List<Operation> operations) {
+    this.operations = operations;
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ApiDeclaration.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ApiDeclaration.java
new file mode 100644 (file)
index 0000000..e89bdaf
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.swagger;
+
+import org.json.JSONObject;
+
+import java.util.List;
+
+/**
+ * Implementation of swagger spec
+ * (see <a href="https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#52-api-declaration">
+ *   https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#52-api-declaration</a>)
+ */
+public class ApiDeclaration {
+  private String apiVersion;
+  private String swaggerVersion;
+  private String basePath;
+  private String resourcePath;
+  private List<String> produces;
+  private List<Api> apis;
+  private JSONObject models;
+
+  public JSONObject getModels() {
+    return models;
+  }
+
+  public void setModels(JSONObject models) {
+    this.models = models;
+  }
+
+  public String getApiVersion() {
+    return apiVersion;
+  }
+
+  public void setApiVersion(String apiVersion) {
+    this.apiVersion = apiVersion;
+  }
+
+  public String getSwaggerVersion() {
+    return swaggerVersion;
+  }
+
+  public void setSwaggerVersion(String swaggerVersion) {
+    this.swaggerVersion = swaggerVersion;
+  }
+
+  public String getBasePath() {
+    return basePath;
+  }
+
+  public void setBasePath(String basePath) {
+    this.basePath = basePath;
+  }
+
+  public String getResourcePath() {
+    return resourcePath;
+  }
+
+  public void setResourcePath(String resourcePath) {
+    this.resourcePath = resourcePath;
+  }
+
+  public List<String> getProduces() {
+    return produces;
+  }
+
+  public void setProduces(List<String> produces) {
+    this.produces = produces;
+  }
+
+  public List<Api> getApis() {
+    return apis;
+  }
+
+  public void setApis(List<Api> apis) {
+    this.apis = apis;
+  }
+
+  public boolean hasApi(){
+    return (apis != null && !apis.isEmpty());
+  }
+
+  public boolean hasModel(){
+    return (models != null && models.length() > 0);
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Operation.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Operation.java
new file mode 100644 (file)
index 0000000..d1150fd
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.swagger;
+
+import java.util.List;
+
+/**
+ * Implementation of swagger spec
+ * (see <a href="https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#523-operation-object">
+ *   https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#523-operation-object</a>)
+ */
+public class Operation {
+  private String method;
+  private String summary;
+  private String notes;
+  private String type;
+  private String nickname;
+  private List<String> consumes;
+  private List<Parameter> parameters;
+  private List<ResponseMessage> responseMessages;
+
+  public String getMethod() {
+    return method;
+  }
+
+  public void setMethod(String method) {
+    this.method = method;
+  }
+
+  public String getSummary() {
+    return summary;
+  }
+
+  public void setSummary(String summary) {
+    this.summary = summary;
+  }
+
+  public String getNotes() {
+    return notes;
+  }
+
+  public void setNotes(String notes) {
+    this.notes = notes;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public void setType(String type) {
+    this.type = type;
+  }
+
+  public String getNickname() {
+    return nickname;
+  }
+
+  public void setNickname(String nickname) {
+    this.nickname = nickname;
+  }
+
+  public List<String> getConsumes() {
+    return consumes;
+  }
+
+  public void setConsumes(List<String> consumes) {
+    this.consumes = consumes;
+  }
+
+  public List<Parameter> getParameters() {
+    return parameters;
+  }
+
+  public void setParameters(List<Parameter> parameters) {
+    this.parameters = parameters;
+  }
+
+  public List<ResponseMessage> getResponseMessages() {
+    return responseMessages;
+  }
+
+  public void setResponseMessages(List<ResponseMessage> responseMessages) {
+    this.responseMessages = responseMessages;
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Parameter.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Parameter.java
new file mode 100644 (file)
index 0000000..dd56b9e
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.swagger;
+
+/**
+ * Implementation of swagger spec
+ * (see <a href="https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#524-parameter-object">
+ *   https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#524-parameter-object</a>)
+ */
+public class Parameter {
+  private String name;
+  private String description;
+  private boolean required;
+  private String type;
+  private String paramType;
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public boolean isRequired() {
+    return required;
+  }
+
+  public void setRequired(boolean required) {
+    this.required = required;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public void setType(String type) {
+    this.type = type;
+  }
+
+  public String getParamType() {
+    return paramType;
+  }
+
+  public void setParamType(String paramType) {
+    this.paramType = paramType;
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Resource.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/Resource.java
new file mode 100644 (file)
index 0000000..c5c3979
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.swagger;
+
+/**
+ * Implementation of swagger spec
+ * (see <a href="https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#512-resource-object">
+ *   https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#512-resource-object</a>)
+ */
+public class Resource {
+  private String path;
+  private String description;
+
+  public String getPath() {
+    return path;
+  }
+
+  public void setPath(String path) {
+    this.path = path;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ResourceList.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ResourceList.java
new file mode 100644 (file)
index 0000000..9b1a106
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.swagger;
+
+import java.util.List;
+
+/**
+ * Implementation of swagger spec
+ * (see <a href="https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#51-resource-listing">
+ *   https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#51-resource-listing</a>)
+ */
+public class ResourceList {
+  private String apiVersion;
+  private String swaggerVersion;
+  private List<Resource> apis;
+
+  public String getApiVersion() {
+    return apiVersion;
+  }
+
+  public void setApiVersion(String apiVersion) {
+    this.apiVersion = apiVersion;
+  }
+
+  public String getSwaggerVersion() {
+    return swaggerVersion;
+  }
+
+  public void setSwaggerVersion(String swaggerVersion) {
+    this.swaggerVersion = swaggerVersion;
+  }
+
+  public List<Resource> getApis() {
+    return apis;
+  }
+
+  public void setApis(List<Resource> apis) {
+    this.apis = apis;
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ResponseMessage.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/swagger/ResponseMessage.java
new file mode 100644 (file)
index 0000000..6c23099
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.sal.rest.doc.swagger;
+
+/**
+ * Implementation of swagger spec
+ * (see <a href="https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#525-response-message-object">
+ *   https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md#525-response-message-object</a>)
+ */
+public class ResponseMessage {
+  private int code;
+  private String message;
+
+  public int getCode() {
+    return code;
+  }
+
+  public void setCode(int code) {
+    this.code = code;
+  }
+
+  public String getMessage() {
+    return message;
+  }
+
+  public void setMessage(String message) {
+    this.message = message;
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/WEB-INF/web.xml b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/WEB-INF/web.xml
new file mode 100644 (file)
index 0000000..356a395
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+    version="3.0">
+
+    <servlet>
+        <servlet-name>JAXRSApiDoc</servlet-name>
+        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
+        <init-param>
+            <param-name>javax.ws.rs.Application</param-name>
+            <param-value>org.opendaylight.controller.sal.rest.doc.jaxrs.ApiDocApplication</param-value>
+        </init-param>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>JAXRSApiDoc</servlet-name>
+        <url-pattern>/apis/*</url-pattern>
+    </servlet-mapping>
+
+    <!--filter>
+        <filter-name>CorsFilter</filter-name>
+        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
+        <init-param>
+            <param-name>cors.allowed.origins</param-name>
+            <param-value>*</param-value>
+        </init-param>
+        <init-param>
+            <param-name>cors.allowed.methods</param-name>
+            <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
+        </init-param>
+        <init-param>
+            <param-name>cors.allowed.headers</param-name>
+            <param-value>Content-Type,X-Requested-With,accept,authorization, 
+        origin,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
+        </init-param>
+        <init-param>
+            <param-name>cors.exposed.headers</param-name>
+            <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
+        </init-param>
+        <init-param>
+            <param-name>cors.support.credentials</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        <init-param>
+            <param-name>cors.preflight.maxage</param-name>
+            <param-value>10</param-value>
+        </init-param>
+    </filter>
+    <filter-mapping>
+        <filter-name>CorsFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping-->
+    <security-constraint>
+      <web-resource-collection>
+        <web-resource-name>free access</web-resource-name>
+        <url-pattern>/explorer/css/*</url-pattern>
+        <url-pattern>/explorer/images/*</url-pattern>
+        <url-pattern>/explorer/lib/*</url-pattern>
+        <url-pattern>/explorer/*</url-pattern>
+      </web-resource-collection>
+    </security-constraint>
+
+</web-app>
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/css/highlight.default.css b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/css/highlight.default.css
new file mode 100644 (file)
index 0000000..e417fc1
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+
+Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
+
+*/
+
+pre code {
+  display: block; padding: 0.5em;
+  background: #F0F0F0;
+}
+
+pre code,
+pre .subst,
+pre .tag .title,
+pre .lisp .title,
+pre .clojure .built_in,
+pre .nginx .title {
+  color: black;
+}
+
+pre .string,
+pre .title,
+pre .constant,
+pre .parent,
+pre .tag .value,
+pre .rules .value,
+pre .rules .value .number,
+pre .preprocessor,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .aggregate,
+pre .template_tag,
+pre .django .variable,
+pre .smalltalk .class,
+pre .addition,
+pre .flow,
+pre .stream,
+pre .bash .variable,
+pre .apache .tag,
+pre .apache .cbracket,
+pre .tex .command,
+pre .tex .special,
+pre .erlang_repl .function_or_atom,
+pre .markdown .header {
+  color: #800;
+}
+
+pre .comment,
+pre .annotation,
+pre .template_comment,
+pre .diff .header,
+pre .chunk,
+pre .markdown .blockquote {
+  color: #888;
+}
+
+pre .number,
+pre .date,
+pre .regexp,
+pre .literal,
+pre .smalltalk .symbol,
+pre .smalltalk .char,
+pre .go .constant,
+pre .change,
+pre .markdown .bullet,
+pre .markdown .link_url {
+  color: #080;
+}
+
+pre .label,
+pre .javadoc,
+pre .ruby .string,
+pre .decorator,
+pre .filter .argument,
+pre .localvars,
+pre .array,
+pre .attr_selector,
+pre .important,
+pre .pseudo,
+pre .pi,
+pre .doctype,
+pre .deletion,
+pre .envvar,
+pre .shebang,
+pre .apache .sqbracket,
+pre .nginx .built_in,
+pre .tex .formula,
+pre .erlang_repl .reserved,
+pre .prompt,
+pre .markdown .link_label,
+pre .vhdl .attribute,
+pre .clojure .attribute,
+pre .coffeescript .property {
+  color: #88F
+}
+
+pre .keyword,
+pre .id,
+pre .phpdoc,
+pre .title,
+pre .built_in,
+pre .aggregate,
+pre .css .tag,
+pre .javadoctag,
+pre .phpdoc,
+pre .yardoctag,
+pre .smalltalk .class,
+pre .winutils,
+pre .bash .variable,
+pre .apache .tag,
+pre .go .typename,
+pre .tex .command,
+pre .markdown .strong,
+pre .request,
+pre .status {
+  font-weight: bold;
+}
+
+pre .markdown .emphasis {
+  font-style: italic;
+}
+
+pre .nginx .built_in {
+  font-weight: normal;
+}
+
+pre .coffeescript .javascript,
+pre .javascript .xml,
+pre .tex .formula,
+pre .xml .javascript,
+pre .xml .vbscript,
+pre .xml .css,
+pre .xml .cdata {
+  opacity: 0.5;
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/css/screen.css b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/css/screen.css
new file mode 100644 (file)
index 0000000..1627ecd
--- /dev/null
@@ -0,0 +1,1070 @@
+/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
+html,
+body,
+div,
+span,
+applet,
+object,
+iframe,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+blockquote,
+pre,
+a,
+abbr,
+acronym,
+address,
+big,
+cite,
+code,
+del,
+dfn,
+em,
+img,
+ins,
+kbd,
+q,
+s,
+samp,
+small,
+strike,
+strong,
+sub,
+sup,
+tt,
+var,
+b,
+u,
+i,
+center,
+dl,
+dt,
+dd,
+ol,
+ul,
+li,
+fieldset,
+form,
+label,
+legend,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+article,
+aside,
+canvas,
+details,
+embed,
+figure,
+figcaption,
+footer,
+header,
+hgroup,
+menu,
+nav,
+output,
+ruby,
+section,
+summary,
+time,
+mark,
+audio,
+video {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-size: 100%;
+  font: inherit;
+  vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+  display: block;
+}
+body {
+  line-height: 1;
+}
+ol,
+ul {
+  list-style: none;
+}
+blockquote,
+q {
+  quotes: none;
+}
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+  content: '';
+  content: none;
+}
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+.swagger-ui-wrap {
+  line-height: 1;
+  font-family: "Droid Sans", sans-serif;
+  max-width: 960px;
+  margin-left: auto;
+  margin-right: auto;
+}
+.swagger-ui-wrap b,
+.swagger-ui-wrap strong {
+  font-family: "Droid Sans", sans-serif;
+  font-weight: bold;
+}
+.swagger-ui-wrap q,
+.swagger-ui-wrap blockquote {
+  quotes: none;
+}
+.swagger-ui-wrap p {
+  line-height: 1.4em;
+  padding: 0 0 10px;
+  color: #333333;
+}
+.swagger-ui-wrap q:before,
+.swagger-ui-wrap q:after,
+.swagger-ui-wrap blockquote:before,
+.swagger-ui-wrap blockquote:after {
+  content: none;
+}
+.swagger-ui-wrap .heading_with_menu h1,
+.swagger-ui-wrap .heading_with_menu h2,
+.swagger-ui-wrap .heading_with_menu h3,
+.swagger-ui-wrap .heading_with_menu h4,
+.swagger-ui-wrap .heading_with_menu h5,
+.swagger-ui-wrap .heading_with_menu h6 {
+  display: block;
+  clear: none;
+  float: left;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+  width: 60%;
+}
+.swagger-ui-wrap table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+.swagger-ui-wrap table thead tr th {
+  padding: 5px;
+  font-size: 0.9em;
+  color: #666666;
+  border-bottom: 1px solid #999999;
+}
+.swagger-ui-wrap table tbody tr:last-child td {
+  border-bottom: none;
+}
+.swagger-ui-wrap table tbody tr.offset {
+  background-color: #f0f0f0;
+}
+.swagger-ui-wrap table tbody tr td {
+  padding: 6px;
+  font-size: 0.9em;
+  border-bottom: 1px solid #cccccc;
+  vertical-align: top;
+  line-height: 1.3em;
+}
+.swagger-ui-wrap ol {
+  margin: 0px 0 10px;
+  padding: 0 0 0 18px;
+  list-style-type: decimal;
+}
+.swagger-ui-wrap ol li {
+  padding: 5px 0px;
+  font-size: 0.9em;
+  color: #333333;
+}
+.swagger-ui-wrap ol,
+.swagger-ui-wrap ul {
+  list-style: none;
+}
+.swagger-ui-wrap h1 a,
+.swagger-ui-wrap h2 a,
+.swagger-ui-wrap h3 a,
+.swagger-ui-wrap h4 a,
+.swagger-ui-wrap h5 a,
+.swagger-ui-wrap h6 a {
+  text-decoration: none;
+}
+.swagger-ui-wrap h1 a:hover,
+.swagger-ui-wrap h2 a:hover,
+.swagger-ui-wrap h3 a:hover,
+.swagger-ui-wrap h4 a:hover,
+.swagger-ui-wrap h5 a:hover,
+.swagger-ui-wrap h6 a:hover {
+  text-decoration: underline;
+}
+.swagger-ui-wrap h1 span.divider,
+.swagger-ui-wrap h2 span.divider,
+.swagger-ui-wrap h3 span.divider,
+.swagger-ui-wrap h4 span.divider,
+.swagger-ui-wrap h5 span.divider,
+.swagger-ui-wrap h6 span.divider {
+  color: #aaaaaa;
+}
+.swagger-ui-wrap a {
+  color: #547f00;
+}
+.swagger-ui-wrap a img {
+  border: none;
+}
+.swagger-ui-wrap article,
+.swagger-ui-wrap aside,
+.swagger-ui-wrap details,
+.swagger-ui-wrap figcaption,
+.swagger-ui-wrap figure,
+.swagger-ui-wrap footer,
+.swagger-ui-wrap header,
+.swagger-ui-wrap hgroup,
+.swagger-ui-wrap menu,
+.swagger-ui-wrap nav,
+.swagger-ui-wrap section,
+.swagger-ui-wrap summary {
+  display: block;
+}
+.swagger-ui-wrap pre {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+  background-color: #fcf6db;
+  border: 1px solid #e5e0c6;
+  padding: 10px;
+}
+.swagger-ui-wrap pre code {
+  line-height: 1.6em;
+  background: none;
+}
+.swagger-ui-wrap .content > .content-type > div > label {
+  clear: both;
+  display: block;
+  color: #0F6AB4;
+  font-size: 1.1em;
+  margin: 0;
+  padding: 15px 0 5px;
+}
+.swagger-ui-wrap .content pre {
+  font-size: 12px;
+  margin-top: 5px;
+  padding: 5px;
+}
+.swagger-ui-wrap .icon-btn {
+  cursor: pointer;
+}
+.swagger-ui-wrap .info_title {
+  padding-bottom: 10px;
+  font-weight: bold;
+  font-size: 25px;
+}
+.swagger-ui-wrap p.big,
+.swagger-ui-wrap div.big p {
+  font-size: 1em;
+  margin-bottom: 10px;
+}
+.swagger-ui-wrap form.fullwidth ol li.string input,
+.swagger-ui-wrap form.fullwidth ol li.url input,
+.swagger-ui-wrap form.fullwidth ol li.text textarea,
+.swagger-ui-wrap form.fullwidth ol li.numeric input {
+  width: 500px !important;
+}
+.swagger-ui-wrap .info_license {
+  padding-bottom: 5px;
+}
+.swagger-ui-wrap .info_tos {
+  padding-bottom: 5px;
+}
+.swagger-ui-wrap .message-fail {
+  color: #cc0000;
+}
+.swagger-ui-wrap .info_contact {
+  padding-bottom: 5px;
+}
+.swagger-ui-wrap .info_description {
+  padding-bottom: 10px;
+  font-size: 15px;
+}
+.swagger-ui-wrap .markdown ol li,
+.swagger-ui-wrap .markdown ul li {
+  padding: 3px 0px;
+  line-height: 1.4em;
+  color: #333333;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input,
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input,
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input {
+  display: block;
+  padding: 4px;
+  width: auto;
+  clear: both;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title,
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title,
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title {
+  font-size: 1.3em;
+}
+.swagger-ui-wrap table.fullwidth {
+  width: 100%;
+}
+.swagger-ui-wrap .model-signature {
+  font-family: "Droid Sans", sans-serif;
+  font-size: 1em;
+  line-height: 1.5em;
+}
+.swagger-ui-wrap .model-signature .signature-nav a {
+  text-decoration: none;
+  color: #AAA;
+}
+.swagger-ui-wrap .model-signature .signature-nav a:hover {
+  text-decoration: underline;
+  color: black;
+}
+.swagger-ui-wrap .model-signature .signature-nav .selected {
+  color: black;
+  text-decoration: none;
+}
+.swagger-ui-wrap .model-signature .propType {
+  color: #5555aa;
+}
+.swagger-ui-wrap .model-signature pre:hover {
+  background-color: #ffffdd;
+}
+.swagger-ui-wrap .model-signature pre {
+  font-size: .85em;
+  line-height: 1.2em;
+  overflow: auto;
+  max-height: 200px;
+  cursor: pointer;
+}
+.swagger-ui-wrap .model-signature ul.signature-nav {
+  display: block;
+  margin: 0;
+  padding: 0;
+}
+.swagger-ui-wrap .model-signature ul.signature-nav li:last-child {
+  padding-right: 0;
+  border-right: none;
+}
+.swagger-ui-wrap .model-signature ul.signature-nav li {
+  float: left;
+  margin: 0 5px 5px 0;
+  padding: 2px 5px 2px 0;
+  border-right: 1px solid #ddd;
+}
+.swagger-ui-wrap .model-signature .propOpt {
+  color: #555;
+}
+.swagger-ui-wrap .model-signature .snippet small {
+  font-size: 0.75em;
+}
+.swagger-ui-wrap .model-signature .propOptKey {
+  font-style: italic;
+}
+.swagger-ui-wrap .model-signature .description .strong {
+  font-weight: bold;
+  color: #000;
+  font-size: .9em;
+}
+.swagger-ui-wrap .model-signature .description div {
+  font-size: 0.9em;
+  line-height: 1.5em;
+  margin-left: 1em;
+}
+.swagger-ui-wrap .model-signature .description .stronger {
+  font-weight: bold;
+  color: #000;
+}
+.swagger-ui-wrap .model-signature .propName {
+  font-weight: bold;
+}
+.swagger-ui-wrap .model-signature .signature-container {
+  clear: both;
+}
+.swagger-ui-wrap .body-textarea {
+  width: 300px;
+  height: 100px;
+  border: 1px solid #aaa;
+}
+.swagger-ui-wrap .markdown p code,
+.swagger-ui-wrap .markdown li code {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+  background-color: #f0f0f0;
+  color: black;
+  padding: 1px 3px;
+}
+.swagger-ui-wrap .required {
+  font-weight: bold;
+}
+.swagger-ui-wrap input.parameter {
+  width: 300px;
+  border: 1px solid #aaa;
+}
+.swagger-ui-wrap h1 {
+  color: black;
+  font-size: 1.5em;
+  line-height: 1.3em;
+  padding: 10px 0 10px 0;
+  font-family: "Droid Sans", sans-serif;
+  font-weight: bold;
+}
+.swagger-ui-wrap .heading_with_menu {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+}
+.swagger-ui-wrap .heading_with_menu ul {
+  display: block;
+  clear: none;
+  float: right;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
+  margin-top: 10px;
+}
+.swagger-ui-wrap h2 {
+  color: black;
+  font-size: 1.3em;
+  padding: 10px 0 10px 0;
+}
+.swagger-ui-wrap h2 a {
+  color: black;
+}
+.swagger-ui-wrap h2 span.sub {
+  font-size: 0.7em;
+  color: #999999;
+  font-style: italic;
+}
+.swagger-ui-wrap h2 span.sub a {
+  color: #777777;
+}
+.swagger-ui-wrap span.weak {
+  color: #666666;
+}
+.swagger-ui-wrap .message-success {
+  color: #89BF04;
+}
+.swagger-ui-wrap caption,
+.swagger-ui-wrap th,
+.swagger-ui-wrap td {
+  text-align: left;
+  font-weight: normal;
+  vertical-align: middle;
+}
+.swagger-ui-wrap .code {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea {
+  font-family: "Droid Sans", sans-serif;
+  height: 250px;
+  padding: 4px;
+  display: block;
+  clear: both;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select {
+  display: block;
+  clear: both;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label {
+  display: block;
+  float: left;
+  clear: none;
+  margin: 0;
+  padding: 0;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input {
+  display: block;
+  float: left;
+  clear: none;
+  margin: 0 5px 0 0;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label {
+  color: black;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li label {
+  display: block;
+  clear: both;
+  width: auto;
+  padding: 0 0 3px;
+  color: #666666;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr {
+  padding-left: 3px;
+  color: #888888;
+}
+.swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints {
+  margin-left: 0;
+  font-style: italic;
+  font-size: 0.9em;
+  margin: 0;
+}
+.swagger-ui-wrap form.formtastic fieldset.buttons {
+  margin: 0;
+  padding: 0;
+}
+.swagger-ui-wrap span.blank,
+.swagger-ui-wrap span.empty {
+  color: #888888;
+  font-style: italic;
+}
+.swagger-ui-wrap .markdown h3 {
+  color: #547f00;
+}
+.swagger-ui-wrap .markdown h4 {
+  color: #666666;
+}
+.swagger-ui-wrap .markdown pre {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+  background-color: #fcf6db;
+  border: 1px solid #e5e0c6;
+  padding: 10px;
+  margin: 0 0 10px 0;
+}
+.swagger-ui-wrap .markdown pre code {
+  line-height: 1.6em;
+}
+.swagger-ui-wrap div.gist {
+  margin: 20px 0 25px 0 !important;
+}
+.swagger-ui-wrap ul#resources {
+  font-family: "Droid Sans", sans-serif;
+  font-size: 0.9em;
+}
+.swagger-ui-wrap ul#resources li.resource {
+  border-bottom: 1px solid #dddddd;
+}
+.swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a,
+.swagger-ui-wrap ul#resources li.resource.active div.heading h2 a {
+  color: black;
+}
+.swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a,
+.swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a {
+  color: #555555;
+}
+.swagger-ui-wrap ul#resources li.resource:last-child {
+  border-bottom: none;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading {
+  border: 1px solid transparent;
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options {
+  overflow: hidden;
+  padding: 0;
+  display: block;
+  clear: none;
+  float: right;
+  margin: 14px 10px 0 0;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li {
+  float: left;
+  clear: none;
+  margin: 0;
+  padding: 2px 10px;
+  border-right: 1px solid #dddddd;
+  color: #666666;
+  font-size: 0.9em;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li a {
+  color: #aaaaaa;
+  text-decoration: none;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover {
+  text-decoration: underline;
+  color: black;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover,
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active,
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active {
+  text-decoration: underline;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child,
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first {
+  padding-left: 0;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child,
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last {
+  padding-right: 0;
+  border-right: none;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child,
+.swagger-ui-wrap ul#resources li.resource div.heading ul.options.first {
+  padding-left: 0;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading h2 {
+  color: #999999;
+  padding-left: 0;
+  display: block;
+  clear: none;
+  float: left;
+  font-family: "Droid Sans", sans-serif;
+  font-weight: bold;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading h2 a {
+  color: #999999;
+}
+.swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover {
+  color: black;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+  margin: 0 0 10px;
+  padding: 0;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+  margin: 0;
+  padding: 0;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 {
+  display: block;
+  clear: none;
+  float: left;
+  width: auto;
+  margin: 0;
+  padding: 0;
+  line-height: 1.1em;
+  color: black;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path {
+  padding-left: 10px;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a {
+  color: black;
+  text-decoration: none;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover {
+  text-decoration: underline;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a {
+  text-transform: uppercase;
+  text-decoration: none;
+  color: white;
+  display: inline-block;
+  width: 50px;
+  font-size: 0.7em;
+  text-align: center;
+  padding: 7px 0 4px;
+  -moz-border-radius: 2px;
+  -webkit-border-radius: 2px;
+  -o-border-radius: 2px;
+  -ms-border-radius: 2px;
+  -khtml-border-radius: 2px;
+  border-radius: 2px;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span {
+  margin: 0;
+  padding: 0;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options {
+  overflow: hidden;
+  padding: 0;
+  display: block;
+  clear: none;
+  float: right;
+  margin: 6px 10px 0 0;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li {
+  float: left;
+  clear: none;
+  margin: 0;
+  padding: 2px 10px;
+  font-size: 0.9em;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a {
+  text-decoration: none;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content {
+  border-top: none;
+  padding: 10px;
+  -moz-border-radius-bottomleft: 6px;
+  -webkit-border-bottom-left-radius: 6px;
+  -o-border-bottom-left-radius: 6px;
+  -ms-border-bottom-left-radius: 6px;
+  -khtml-border-bottom-left-radius: 6px;
+  border-bottom-left-radius: 6px;
+  -moz-border-radius-bottomright: 6px;
+  -webkit-border-bottom-right-radius: 6px;
+  -o-border-bottom-right-radius: 6px;
+  -ms-border-bottom-right-radius: 6px;
+  -khtml-border-bottom-right-radius: 6px;
+  border-bottom-right-radius: 6px;
+  margin: 0 0 20px;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4 {
+  font-size: 1.1em;
+  margin: 0;
+  padding: 15px 0 5px;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header {
+  float: none;
+  clear: both;
+  overflow: hidden;
+  display: block;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a {
+  padding: 4px 0 0 10px;
+  display: inline-block;
+  font-size: 0.9em;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header img {
+  display: block;
+  clear: none;
+  float: right;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit {
+  display: block;
+  clear: none;
+  float: left;
+  padding: 6px 8px;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type='text'].error {
+  outline: 2px solid black;
+  outline-color: #cc0000;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre {
+  font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
+  padding: 10px;
+  font-size: 0.9em;
+  max-height: 400px;
+  overflow-y: auto;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading {
+  background-color: #f9f2e9;
+  border: 1px solid #f0e0ca;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a {
+  background-color: #c5862b;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #f0e0ca;
+  color: #c5862b;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a {
+  color: #c5862b;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content {
+  background-color: #faf5ee;
+  border: 1px solid #f0e0ca;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 {
+  color: #c5862b;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a {
+  color: #dcb67f;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading {
+  background-color: #fcffcd;
+  border: 1px solid black;
+  border-color: #ffd20f;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a {
+  text-transform: uppercase;
+  background-color: #ffd20f;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #ffd20f;
+  color: #ffd20f;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a {
+  color: #ffd20f;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content {
+  background-color: #fcffcd;
+  border: 1px solid black;
+  border-color: #ffd20f;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4 {
+  color: #ffd20f;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a {
+  color: #6fc992;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading {
+  background-color: #f5e8e8;
+  border: 1px solid #e8c6c7;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a {
+  text-transform: uppercase;
+  background-color: #a41e22;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #e8c6c7;
+  color: #a41e22;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a {
+  color: #a41e22;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content {
+  background-color: #f7eded;
+  border: 1px solid #e8c6c7;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 {
+  color: #a41e22;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a {
+  color: #c8787a;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading {
+  background-color: #e7f6ec;
+  border: 1px solid #c3e8d1;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a {
+  background-color: #10a54a;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #c3e8d1;
+  color: #10a54a;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a {
+  color: #10a54a;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content {
+  background-color: #ebf7f0;
+  border: 1px solid #c3e8d1;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 {
+  color: #10a54a;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a {
+  color: #6fc992;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading {
+  background-color: #FCE9E3;
+  border: 1px solid #F5D5C3;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a {
+  background-color: #D38042;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #f0cecb;
+  color: #D38042;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a {
+  color: #D38042;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content {
+  background-color: #faf0ef;
+  border: 1px solid #f0cecb;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4 {
+  color: #D38042;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a {
+  color: #dcb67f;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading {
+  background-color: #e7f0f7;
+  border: 1px solid #c3d9ec;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a {
+  background-color: #0f6ab4;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li {
+  border-right: 1px solid #dddddd;
+  border-right-color: #c3d9ec;
+  color: #0f6ab4;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a {
+  color: #0f6ab4;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content {
+  background-color: #ebf3f9;
+  border: 1px solid #c3d9ec;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 {
+  color: #0f6ab4;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a {
+  color: #6fa5d2;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content {
+  border-top: none;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last {
+  padding-right: 0;
+  border-right: none;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active {
+  text-decoration: underline;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first {
+  padding-left: 0;
+}
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child,
+.swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first {
+  padding-left: 0;
+}
+.swagger-ui-wrap p#colophon {
+  margin: 0 15px 40px 15px;
+  padding: 10px 0;
+  font-size: 0.8em;
+  border-top: 1px solid #dddddd;
+  font-family: "Droid Sans", sans-serif;
+  color: #999999;
+  font-style: italic;
+}
+.swagger-ui-wrap p#colophon a {
+  text-decoration: none;
+  color: #547f00;
+}
+.swagger-ui-wrap h3 {
+  color: black;
+  font-size: 1.1em;
+  padding: 10px 0 10px 0;
+}
+.swagger-ui-wrap .markdown ol,
+.swagger-ui-wrap .markdown ul {
+  font-family: "Droid Sans", sans-serif;
+  margin: 5px 0 10px;
+  padding: 0 0 0 18px;
+  list-style-type: disc;
+}
+.swagger-ui-wrap form.form_box {
+  background-color: #ebf3f9;
+  border: 1px solid #c3d9ec;
+  padding: 10px;
+}
+.swagger-ui-wrap form.form_box label {
+  color: #0f6ab4 !important;
+}
+.swagger-ui-wrap form.form_box input[type=submit] {
+  display: block;
+  padding: 10px;
+}
+.swagger-ui-wrap form.form_box p.weak {
+  font-size: 0.8em;
+}
+.swagger-ui-wrap form.form_box p {
+  font-size: 0.9em;
+  padding: 0 0 15px;
+  color: #7e7b6d;
+}
+.swagger-ui-wrap form.form_box p a {
+  color: #646257;
+}
+.swagger-ui-wrap form.form_box p strong {
+  color: black;
+}
+#header {
+  background-color: #89bf04;
+  padding: 14px;
+}
+#header a#logo {
+  font-size: 1.5em;
+  font-weight: bold;
+  text-decoration: none;
+  background: transparent url(../images/logo_small.png) no-repeat left center;
+  padding: 20px 0 20px 40px;
+  color: white;
+}
+#header form#api_selector {
+  display: block;
+  clear: none;
+  float: right;
+}
+#header form#api_selector .input {
+  display: block;
+  clear: none;
+  float: left;
+  margin: 0 10px 0 0;
+}
+#header form#api_selector .input input#input_apiKey {
+  width: 200px;
+}
+#header form#api_selector .input input#input_baseUrl {
+  width: 400px;
+}
+#header form#api_selector .input a#explore {
+  display: block;
+  text-decoration: none;
+  font-weight: bold;
+  padding: 6px 8px;
+  font-size: 0.9em;
+  color: white;
+  background-color: #547f00;
+  -moz-border-radius: 4px;
+  -webkit-border-radius: 4px;
+  -o-border-radius: 4px;
+  -ms-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+}
+#header form#api_selector .input a#explore:hover {
+  background-color: #547f00;
+}
+#header form#api_selector .input input {
+  font-size: 0.9em;
+  padding: 3px;
+  margin: 0;
+}
+#content_message {
+  margin: 10px 15px;
+  font-style: italic;
+  color: #999999;
+}
+#message-bar {
+  min-height: 30px;
+  text-align: center;
+  padding-top: 10px;
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/logo_small.png b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/logo_small.png
new file mode 100644 (file)
index 0000000..5496a65
Binary files /dev/null and b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/logo_small.png differ
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/pet_store_api.png b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/pet_store_api.png
new file mode 100644 (file)
index 0000000..f9f9cd4
Binary files /dev/null and b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/pet_store_api.png differ
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/throbber.gif b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/throbber.gif
new file mode 100644 (file)
index 0000000..0639388
Binary files /dev/null and b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/throbber.gif differ
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/wordnik_api.png b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/wordnik_api.png
new file mode 100644 (file)
index 0000000..dca4f14
Binary files /dev/null and b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/images/wordnik_api.png differ
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/index.html b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/index.html
new file mode 100644 (file)
index 0000000..b8f6775
--- /dev/null
@@ -0,0 +1,83 @@
+<!DOCTYPE html>\r
+<html>\r
+<head>\r
+  <title>Swagger UI</title>\r
+  <link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>\r
+  <link href='css/highlight.default.css' media='screen' rel='stylesheet' type='text/css'/>\r
+  <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>\r
+  <script type="text/javascript" src="lib/shred.bundle.js" /></script>  \r
+  <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>\r
+  <script src='lib/jquery.slideto.min.js' type='text/javascript'></script>\r
+  <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>\r
+  <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>\r
+  <script src='lib/handlebars-1.0.0.js' type='text/javascript'></script>\r
+  <script src='lib/underscore-min.js' type='text/javascript'></script>\r
+  <script src='lib/backbone-min.js' type='text/javascript'></script>\r
+  <script src='lib/swagger.js' type='text/javascript'></script>\r
+  <script src='swagger-ui.js' type='text/javascript'></script>\r
+  <script src='lib/highlight.7.3.pack.js' type='text/javascript'></script>\r
+  <script type="text/javascript">\r
+    $(function () {\r
+      window.swaggerUi = new SwaggerUi({\r
+      url: "http://localhost:8080/apidoc/apis",\r
+      dom_id: "swagger-ui-container",\r
+      supportedSubmitMethods: ['get', 'post', 'put', 'delete'],\r
+      onComplete: function(swaggerApi, swaggerUi){\r
+        if(console) {\r
+          console.log("Loaded SwaggerUI")\r
+        }\r
+        $('pre code').each(function(i, e) {hljs.highlightBlock(e)});\r
+      },\r
+      onFailure: function(data) {\r
+        if(console) {\r
+          console.log("Unable to Load SwaggerUI");\r
+          console.log(data);\r
+        }\r
+      },\r
+      docExpansion: "none"\r
+    });\r
+\r
+    $('#input_apiKey').change(function() {\r
+      var key = $('#input_apiKey')[0].value;\r
+      console.log("key: " + key);\r
+      if(key && key.trim() != "") {\r
+        console.log("added key " + key);\r
+        window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query"));\r
+      }\r
+    })\r
+    window.swaggerUi.load();\r
+  });\r
+\r
+  </script>\r
+</head>\r
+\r
+<body>\r
+<div id='header'>\r
+  <div class="swagger-ui-wrap">\r
+    <a id="logo" href="http://swagger.wordnik.com">swagger</a>\r
+\r
+    <form id='api_selector'>\r
+      <div class='input icon-btn'>\r
+        <img id="show-pet-store-icon" src="images/pet_store_api.png" title="Show Swagger Petstore Example Apis">\r
+      </div>\r
+      <div class='input icon-btn'>\r
+        <img id="show-wordnik-dev-icon" src="images/wordnik_api.png" title="Show Wordnik Developer Apis">\r
+      </div>\r
+      <div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>\r
+      <div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>\r
+      <div class='input'><a id="explore" href="#">Explore</a></div>\r
+    </form>\r
+  </div>\r
+</div>\r
+\r
+<div id="message-bar" class="swagger-ui-wrap">\r
+  &nbsp;\r
+</div>\r
+\r
+<div id="swagger-ui-container" class="swagger-ui-wrap">\r
+\r
+</div>\r
+\r
+</body>\r
+\r
+</html>\r
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/backbone-min.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/backbone-min.js
new file mode 100644 (file)
index 0000000..c1c0d4f
--- /dev/null
@@ -0,0 +1,38 @@
+// Backbone.js 0.9.2
+
+// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
+// Backbone may be freely distributed under the MIT license.
+// For all details and documentation:
+// http://backbonejs.org
+(function(){var l=this,y=l.Backbone,z=Array.prototype.slice,A=Array.prototype.splice,g;g="undefined"!==typeof exports?exports:l.Backbone={};g.VERSION="0.9.2";var f=l._;!f&&"undefined"!==typeof require&&(f=require("underscore"));var i=l.jQuery||l.Zepto||l.ender;g.setDomLibrary=function(a){i=a};g.noConflict=function(){l.Backbone=y;return this};g.emulateHTTP=!1;g.emulateJSON=!1;var p=/\s+/,k=g.Events={on:function(a,b,c){var d,e,f,g,j;if(!b)return this;a=a.split(p);for(d=this._callbacks||(this._callbacks=
+{});e=a.shift();)f=(j=d[e])?j.tail:{},f.next=g={},f.context=c,f.callback=b,d[e]={tail:g,next:j?j.next:f};return this},off:function(a,b,c){var d,e,h,g,j,q;if(e=this._callbacks){if(!a&&!b&&!c)return delete this._callbacks,this;for(a=a?a.split(p):f.keys(e);d=a.shift();)if(h=e[d],delete e[d],h&&(b||c))for(g=h.tail;(h=h.next)!==g;)if(j=h.callback,q=h.context,b&&j!==b||c&&q!==c)this.on(d,j,q);return this}},trigger:function(a){var b,c,d,e,f,g;if(!(d=this._callbacks))return this;f=d.all;a=a.split(p);for(g=
+z.call(arguments,1);b=a.shift();){if(c=d[b])for(e=c.tail;(c=c.next)!==e;)c.callback.apply(c.context||this,g);if(c=f){e=c.tail;for(b=[b].concat(g);(c=c.next)!==e;)c.callback.apply(c.context||this,b)}}return this}};k.bind=k.on;k.unbind=k.off;var o=g.Model=function(a,b){var c;a||(a={});b&&b.parse&&(a=this.parse(a));if(c=n(this,"defaults"))a=f.extend({},c,a);b&&b.collection&&(this.collection=b.collection);this.attributes={};this._escapedAttributes={};this.cid=f.uniqueId("c");this.changed={};this._silent=
+{};this._pending={};this.set(a,{silent:!0});this.changed={};this._silent={};this._pending={};this._previousAttributes=f.clone(this.attributes);this.initialize.apply(this,arguments)};f.extend(o.prototype,k,{changed:null,_silent:null,_pending:null,idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.get(a);return this._escapedAttributes[a]=f.escape(null==
+b?"":""+b)},has:function(a){return null!=this.get(a)},set:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c||(c={});if(!d)return this;d instanceof o&&(d=d.attributes);if(c.unset)for(e in d)d[e]=void 0;if(!this._validate(d,c))return!1;this.idAttribute in d&&(this.id=d[this.idAttribute]);var b=c.changes={},h=this.attributes,g=this._escapedAttributes,j=this._previousAttributes||{};for(e in d){a=d[e];if(!f.isEqual(h[e],a)||c.unset&&f.has(h,e))delete g[e],(c.silent?this._silent:
+b)[e]=!0;c.unset?delete h[e]:h[e]=a;!f.isEqual(j[e],a)||f.has(h,e)!=f.has(j,e)?(this.changed[e]=a,c.silent||(this._pending[e]=!0)):(delete this.changed[e],delete this._pending[e])}c.silent||this.change(c);return this},unset:function(a,b){(b||(b={})).unset=!0;return this.set(a,null,b)},clear:function(a){(a||(a={})).unset=!0;return this.set(f.clone(this.attributes),a)},fetch:function(a){var a=a?f.clone(a):{},b=this,c=a.success;a.success=function(d,e,f){if(!b.set(b.parse(d,f),a))return!1;c&&c(b,d)};
+a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},save:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c=c?f.clone(c):{};if(c.wait){if(!this._validate(d,c))return!1;e=f.clone(this.attributes)}a=f.extend({},c,{silent:!0});if(d&&!this.set(d,c.wait?a:c))return!1;var h=this,i=c.success;c.success=function(a,b,e){b=h.parse(a,e);if(c.wait){delete c.wait;b=f.extend(d||{},b)}if(!h.set(b,c))return false;i?i(h,a):h.trigger("sync",h,a,c)};c.error=g.wrapError(c.error,
+h,c);b=this.isNew()?"create":"update";b=(this.sync||g.sync).call(this,b,this,c);c.wait&&this.set(e,a);return b},destroy:function(a){var a=a?f.clone(a):{},b=this,c=a.success,d=function(){b.trigger("destroy",b,b.collection,a)};if(this.isNew())return d(),!1;a.success=function(e){a.wait&&d();c?c(b,e):b.trigger("sync",b,e,a)};a.error=g.wrapError(a.error,b,a);var e=(this.sync||g.sync).call(this,"delete",this,a);a.wait||d();return e},url:function(){var a=n(this,"urlRoot")||n(this.collection,"url")||t();
+return this.isNew()?a:a+("/"==a.charAt(a.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},change:function(a){a||(a={});var b=this._changing;this._changing=!0;for(var c in this._silent)this._pending[c]=!0;var d=f.extend({},a.changes,this._silent);this._silent={};for(c in d)this.trigger("change:"+c,this,this.get(c),a);if(b)return this;for(;!f.isEmpty(this._pending);){this._pending=
+{};this.trigger("change",this,a);for(c in this.changed)!this._pending[c]&&!this._silent[c]&&delete this.changed[c];this._previousAttributes=f.clone(this.attributes)}this._changing=!1;return this},hasChanged:function(a){return!arguments.length?!f.isEmpty(this.changed):f.has(this.changed,a)},changedAttributes:function(a){if(!a)return this.hasChanged()?f.clone(this.changed):!1;var b,c=!1,d=this._previousAttributes,e;for(e in a)if(!f.isEqual(d[e],b=a[e]))(c||(c={}))[e]=b;return c},previous:function(a){return!arguments.length||
+!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)},isValid:function(){return!this.validate(this.attributes)},_validate:function(a,b){if(b.silent||!this.validate)return!0;var a=f.extend({},this.attributes,a),c=this.validate(a,b);if(!c)return!0;b&&b.error?b.error(this,c,b):this.trigger("error",this,c,b);return!1}});var r=g.Collection=function(a,b){b||(b={});b.model&&(this.model=b.model);b.comparator&&(this.comparator=b.comparator);
+this._reset();this.initialize.apply(this,arguments);a&&this.reset(a,{silent:!0,parse:b.parse})};f.extend(r.prototype,k,{model:o,initialize:function(){},toJSON:function(a){return this.map(function(b){return b.toJSON(a)})},add:function(a,b){var c,d,e,g,i,j={},k={},l=[];b||(b={});a=f.isArray(a)?a.slice():[a];c=0;for(d=a.length;c<d;c++){if(!(e=a[c]=this._prepareModel(a[c],b)))throw Error("Can't add an invalid model to a collection");g=e.cid;i=e.id;j[g]||this._byCid[g]||null!=i&&(k[i]||this._byId[i])?
+l.push(c):j[g]=k[i]=e}for(c=l.length;c--;)a.splice(l[c],1);c=0;for(d=a.length;c<d;c++)(e=a[c]).on("all",this._onModelEvent,this),this._byCid[e.cid]=e,null!=e.id&&(this._byId[e.id]=e);this.length+=d;A.apply(this.models,[null!=b.at?b.at:this.models.length,0].concat(a));this.comparator&&this.sort({silent:!0});if(b.silent)return this;c=0;for(d=this.models.length;c<d;c++)if(j[(e=this.models[c]).cid])b.index=c,e.trigger("add",e,this,b);return this},remove:function(a,b){var c,d,e,g;b||(b={});a=f.isArray(a)?
+a.slice():[a];c=0;for(d=a.length;c<d;c++)if(g=this.getByCid(a[c])||this.get(a[c]))delete this._byId[g.id],delete this._byCid[g.cid],e=this.indexOf(g),this.models.splice(e,1),this.length--,b.silent||(b.index=e,g.trigger("remove",g,this,b)),this._removeReference(g);return this},push:function(a,b){a=this._prepareModel(a,b);this.add(a,b);return a},pop:function(a){var b=this.at(this.length-1);this.remove(b,a);return b},unshift:function(a,b){a=this._prepareModel(a,b);this.add(a,f.extend({at:0},b));return a},
+shift:function(a){var b=this.at(0);this.remove(b,a);return b},get:function(a){return null==a?void 0:this._byId[null!=a.id?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},where:function(a){return f.isEmpty(a)?[]:this.filter(function(b){for(var c in a)if(a[c]!==b.get(c))return!1;return!0})},sort:function(a){a||(a={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");var b=f.bind(this.comparator,this);1==this.comparator.length?
+this.models=this.sortBy(b):this.models.sort(b);a.silent||this.trigger("reset",this,a);return this},pluck:function(a){return f.map(this.models,function(b){return b.get(a)})},reset:function(a,b){a||(a=[]);b||(b={});for(var c=0,d=this.models.length;c<d;c++)this._removeReference(this.models[c]);this._reset();this.add(a,f.extend({silent:!0},b));b.silent||this.trigger("reset",this,b);return this},fetch:function(a){a=a?f.clone(a):{};void 0===a.parse&&(a.parse=!0);var b=this,c=a.success;a.success=function(d,
+e,f){b[a.add?"add":"reset"](b.parse(d,f),a);c&&c(b,d)};a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},create:function(a,b){var c=this,b=b?f.clone(b):{},a=this._prepareModel(a,b);if(!a)return!1;b.wait||c.add(a,b);var d=b.success;b.success=function(e,f){b.wait&&c.add(e,b);d?d(e,f):e.trigger("sync",a,f,b)};a.save(null,b);return a},parse:function(a){return a},chain:function(){return f(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId=
+{};this._byCid={}},_prepareModel:function(a,b){b||(b={});a instanceof o?a.collection||(a.collection=this):(b.collection=this,a=new this.model(a,b),a._validate(a.attributes,b)||(a=!1));return a},_removeReference:function(a){this==a.collection&&delete a.collection;a.off("all",this._onModelEvent,this)},_onModelEvent:function(a,b,c,d){("add"==a||"remove"==a)&&c!=this||("destroy"==a&&this.remove(b,d),b&&a==="change:"+b.idAttribute&&(delete this._byId[b.previous(b.idAttribute)],this._byId[b.id]=b),this.trigger.apply(this,
+arguments))}});f.each("forEach,each,map,reduce,reduceRight,find,detect,filter,select,reject,every,all,some,any,include,contains,invoke,max,min,sortBy,sortedIndex,toArray,size,first,initial,rest,last,without,indexOf,shuffle,lastIndexOf,isEmpty,groupBy".split(","),function(a){r.prototype[a]=function(){return f[a].apply(f,[this.models].concat(f.toArray(arguments)))}});var u=g.Router=function(a){a||(a={});a.routes&&(this.routes=a.routes);this._bindRoutes();this.initialize.apply(this,arguments)},B=/:\w+/g,
+C=/\*\w+/g,D=/[-[\]{}()+?.,\\^$|#\s]/g;f.extend(u.prototype,k,{initialize:function(){},route:function(a,b,c){g.history||(g.history=new m);f.isRegExp(a)||(a=this._routeToRegExp(a));c||(c=this[b]);g.history.route(a,f.bind(function(d){d=this._extractParameters(a,d);c&&c.apply(this,d);this.trigger.apply(this,["route:"+b].concat(d));g.history.trigger("route",this,b,d)},this));return this},navigate:function(a,b){g.history.navigate(a,b)},_bindRoutes:function(){if(this.routes){var a=[],b;for(b in this.routes)a.unshift([b,
+this.routes[b]]);b=0;for(var c=a.length;b<c;b++)this.route(a[b][0],a[b][1],this[a[b][1]])}},_routeToRegExp:function(a){a=a.replace(D,"\\$&").replace(B,"([^/]+)").replace(C,"(.*?)");return RegExp("^"+a+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}});var m=g.History=function(){this.handlers=[];f.bindAll(this,"checkUrl")},s=/^[#\/]/,E=/msie [\w.]+/;m.started=!1;f.extend(m.prototype,k,{interval:50,getHash:function(a){return(a=(a?a.location:window.location).href.match(/#(.*)$/))?a[1]:
+""},getFragment:function(a,b){if(null==a)if(this._hasPushState||b){var a=window.location.pathname,c=window.location.search;c&&(a+=c)}else a=this.getHash();a.indexOf(this.options.root)||(a=a.substr(this.options.root.length));return a.replace(s,"")},start:function(a){if(m.started)throw Error("Backbone.history has already been started");m.started=!0;this.options=f.extend({},{root:"/"},this.options,a);this._wantsHashChange=!1!==this.options.hashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=
+!(!this.options.pushState||!window.history||!window.history.pushState);var a=this.getFragment(),b=document.documentMode;if(b=E.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b))this.iframe=i('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(a);this._hasPushState?i(window).bind("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!b?i(window).bind("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,
+this.interval));this.fragment=a;a=window.location;b=a.pathname==this.options.root;if(this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!b)return this.fragment=this.getFragment(null,!0),window.location.replace(this.options.root+"#"+this.fragment),!0;this._wantsPushState&&this._hasPushState&&b&&a.hash&&(this.fragment=this.getHash().replace(s,""),window.history.replaceState({},document.title,a.protocol+"//"+a.host+this.options.root+this.fragment));if(!this.options.silent)return this.loadUrl()},
+stop:function(){i(window).unbind("popstate",this.checkUrl).unbind("hashchange",this.checkUrl);clearInterval(this._checkUrlInterval);m.started=!1},route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();a==this.fragment&&this.iframe&&(a=this.getFragment(this.getHash(this.iframe)));if(a==this.fragment)return!1;this.iframe&&this.navigate(a);this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(a){var b=this.fragment=this.getFragment(a);return f.any(this.handlers,
+function(a){if(a.route.test(b))return a.callback(b),!0})},navigate:function(a,b){if(!m.started)return!1;if(!b||!0===b)b={trigger:b};var c=(a||"").replace(s,"");this.fragment!=c&&(this._hasPushState?(0!=c.indexOf(this.options.root)&&(c=this.options.root+c),this.fragment=c,window.history[b.replace?"replaceState":"pushState"]({},document.title,c)):this._wantsHashChange?(this.fragment=c,this._updateHash(window.location,c,b.replace),this.iframe&&c!=this.getFragment(this.getHash(this.iframe))&&(b.replace||
+this.iframe.document.open().close(),this._updateHash(this.iframe.location,c,b.replace))):window.location.assign(this.options.root+a),b.trigger&&this.loadUrl(a))},_updateHash:function(a,b,c){c?a.replace(a.toString().replace(/(javascript:|#).*$/,"")+"#"+b):a.hash=b}});var v=g.View=function(a){this.cid=f.uniqueId("view");this._configure(a||{});this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()},F=/^(\S+)\s*(.*)$/,w="model,collection,el,id,attributes,className,tagName".split(",");
+f.extend(v.prototype,k,{tagName:"div",$:function(a){return this.$el.find(a)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();return this},make:function(a,b,c){a=document.createElement(a);b&&i(a).attr(b);c&&i(a).html(c);return a},setElement:function(a,b){this.$el&&this.undelegateEvents();this.$el=a instanceof i?a:i(a);this.el=this.$el[0];!1!==b&&this.delegateEvents();return this},delegateEvents:function(a){if(a||(a=n(this,"events"))){this.undelegateEvents();
+for(var b in a){var c=a[b];f.isFunction(c)||(c=this[a[b]]);if(!c)throw Error('Method "'+a[b]+'" does not exist');var d=b.match(F),e=d[1],d=d[2],c=f.bind(c,this),e=e+(".delegateEvents"+this.cid);""===d?this.$el.bind(e,c):this.$el.delegate(d,e,c)}}},undelegateEvents:function(){this.$el.unbind(".delegateEvents"+this.cid)},_configure:function(a){this.options&&(a=f.extend({},this.options,a));for(var b=0,c=w.length;b<c;b++){var d=w[b];a[d]&&(this[d]=a[d])}this.options=a},_ensureElement:function(){if(this.el)this.setElement(this.el,
+!1);else{var a=n(this,"attributes")||{};this.id&&(a.id=this.id);this.className&&(a["class"]=this.className);this.setElement(this.make(this.tagName,a),!1)}}});o.extend=r.extend=u.extend=v.extend=function(a,b){var c=G(this,a,b);c.extend=this.extend;return c};var H={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};g.sync=function(a,b,c){var d=H[a];c||(c={});var e={type:d,dataType:"json"};c.url||(e.url=n(b,"url")||t());if(!c.data&&b&&("create"==a||"update"==a))e.contentType="application/json",
+e.data=JSON.stringify(b.toJSON());g.emulateJSON&&(e.contentType="application/x-www-form-urlencoded",e.data=e.data?{model:e.data}:{});if(g.emulateHTTP&&("PUT"===d||"DELETE"===d))g.emulateJSON&&(e.data._method=d),e.type="POST",e.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",d)};"GET"!==e.type&&!g.emulateJSON&&(e.processData=!1);return i.ajax(f.extend(e,c))};g.wrapError=function(a,b,c){return function(d,e){e=d===b?e:d;a?a(b,e,c):b.trigger("error",b,e,c)}};var x=function(){},G=function(a,
+b,c){var d;d=b&&b.hasOwnProperty("constructor")?b.constructor:function(){a.apply(this,arguments)};f.extend(d,a);x.prototype=a.prototype;d.prototype=new x;b&&f.extend(d.prototype,b);c&&f.extend(d,c);d.prototype.constructor=d;d.__super__=a.prototype;return d},n=function(a,b){return!a||!a[b]?null:f.isFunction(a[b])?a[b]():a[b]},t=function(){throw Error('A "url" property or function must be specified');}}).call(this);
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/handlebars-1.0.0.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/handlebars-1.0.0.js
new file mode 100644 (file)
index 0000000..c70f09d
--- /dev/null
@@ -0,0 +1,2278 @@
+/*
+
+Copyright (C) 2011 by Yehuda Katz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+*/
+
+// lib/handlebars/browser-prefix.js
+var Handlebars = {};
+
+(function(Handlebars, undefined) {
+;
+// lib/handlebars/base.js
+
+Handlebars.VERSION = "1.0.0";
+Handlebars.COMPILER_REVISION = 4;
+
+Handlebars.REVISION_CHANGES = {
+  1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
+  2: '== 1.0.0-rc.3',
+  3: '== 1.0.0-rc.4',
+  4: '>= 1.0.0'
+};
+
+Handlebars.helpers  = {};
+Handlebars.partials = {};
+
+var toString = Object.prototype.toString,
+    functionType = '[object Function]',
+    objectType = '[object Object]';
+
+Handlebars.registerHelper = function(name, fn, inverse) {
+  if (toString.call(name) === objectType) {
+    if (inverse || fn) { throw new Handlebars.Exception('Arg not supported with multiple helpers'); }
+    Handlebars.Utils.extend(this.helpers, name);
+  } else {
+    if (inverse) { fn.not = inverse; }
+    this.helpers[name] = fn;
+  }
+};
+
+Handlebars.registerPartial = function(name, str) {
+  if (toString.call(name) === objectType) {
+    Handlebars.Utils.extend(this.partials,  name);
+  } else {
+    this.partials[name] = str;
+  }
+};
+
+Handlebars.registerHelper('helperMissing', function(arg) {
+  if(arguments.length === 2) {
+    return undefined;
+  } else {
+    throw new Error("Missing helper: '" + arg + "'");
+  }
+});
+
+Handlebars.registerHelper('blockHelperMissing', function(context, options) {
+  var inverse = options.inverse || function() {}, fn = options.fn;
+
+  var type = toString.call(context);
+
+  if(type === functionType) { context = context.call(this); }
+
+  if(context === true) {
+    return fn(this);
+  } else if(context === false || context == null) {
+    return inverse(this);
+  } else if(type === "[object Array]") {
+    if(context.length > 0) {
+      return Handlebars.helpers.each(context, options);
+    } else {
+      return inverse(this);
+    }
+  } else {
+    return fn(context);
+  }
+});
+
+Handlebars.K = function() {};
+
+Handlebars.createFrame = Object.create || function(object) {
+  Handlebars.K.prototype = object;
+  var obj = new Handlebars.K();
+  Handlebars.K.prototype = null;
+  return obj;
+};
+
+Handlebars.logger = {
+  DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
+
+  methodMap: {0: 'debug', 1: 'info', 2: 'warn', 3: 'error'},
+
+  // can be overridden in the host environment
+  log: function(level, obj) {
+    if (Handlebars.logger.level <= level) {
+      var method = Handlebars.logger.methodMap[level];
+      if (typeof console !== 'undefined' && console[method]) {
+        console[method].call(console, obj);
+      }
+    }
+  }
+};
+
+Handlebars.log = function(level, obj) { Handlebars.logger.log(level, obj); };
+
+Handlebars.registerHelper('each', function(context, options) {
+  var fn = options.fn, inverse = options.inverse;
+  var i = 0, ret = "", data;
+
+  var type = toString.call(context);
+  if(type === functionType) { context = context.call(this); }
+
+  if (options.data) {
+    data = Handlebars.createFrame(options.data);
+  }
+
+  if(context && typeof context === 'object') {
+    if(context instanceof Array){
+      for(var j = context.length; i<j; i++) {
+        if (data) { data.index = i; }
+        ret = ret + fn(context[i], { data: data });
+      }
+    } else {
+      for(var key in context) {
+        if(context.hasOwnProperty(key)) {
+          if(data) { data.key = key; }
+          ret = ret + fn(context[key], {data: data});
+          i++;
+        }
+      }
+    }
+  }
+
+  if(i === 0){
+    ret = inverse(this);
+  }
+
+  return ret;
+});
+
+Handlebars.registerHelper('if', function(conditional, options) {
+  var type = toString.call(conditional);
+  if(type === functionType) { conditional = conditional.call(this); }
+
+  if(!conditional || Handlebars.Utils.isEmpty(conditional)) {
+    return options.inverse(this);
+  } else {
+    return options.fn(this);
+  }
+});
+
+Handlebars.registerHelper('unless', function(conditional, options) {
+  return Handlebars.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn});
+});
+
+Handlebars.registerHelper('with', function(context, options) {
+  var type = toString.call(context);
+  if(type === functionType) { context = context.call(this); }
+
+  if (!Handlebars.Utils.isEmpty(context)) return options.fn(context);
+});
+
+Handlebars.registerHelper('log', function(context, options) {
+  var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
+  Handlebars.log(level, context);
+});
+;
+// lib/handlebars/compiler/parser.js
+/* Jison generated parser */
+var handlebars = (function(){
+var parser = {trace: function trace() { },
+yy: {},
+symbols_: {"error":2,"root":3,"program":4,"EOF":5,"simpleInverse":6,"statements":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"CLOSE_UNESCAPED":24,"OPEN_PARTIAL":25,"partialName":26,"params":27,"hash":28,"dataName":29,"param":30,"STRING":31,"INTEGER":32,"BOOLEAN":33,"hashSegments":34,"hashSegment":35,"ID":36,"EQUALS":37,"DATA":38,"pathSegments":39,"SEP":40,"$accept":0,"$end":1},
+terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"CLOSE_UNESCAPED",25:"OPEN_PARTIAL",31:"STRING",32:"INTEGER",33:"BOOLEAN",36:"ID",37:"EQUALS",38:"DATA",40:"SEP"},
+productions_: [0,[3,2],[4,2],[4,3],[4,2],[4,1],[4,1],[4,0],[7,1],[7,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[6,2],[17,3],[17,2],[17,2],[17,1],[17,1],[27,2],[27,1],[30,1],[30,1],[30,1],[30,1],[30,1],[28,1],[34,2],[34,1],[35,3],[35,3],[35,3],[35,3],[35,3],[26,1],[26,1],[26,1],[29,2],[21,1],[39,3],[39,1]],
+performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
+
+var $0 = $$.length - 1;
+switch (yystate) {
+case 1: return $$[$0-1]; 
+break;
+case 2: this.$ = new yy.ProgramNode([], $$[$0]); 
+break;
+case 3: this.$ = new yy.ProgramNode($$[$0-2], $$[$0]); 
+break;
+case 4: this.$ = new yy.ProgramNode($$[$0-1], []); 
+break;
+case 5: this.$ = new yy.ProgramNode($$[$0]); 
+break;
+case 6: this.$ = new yy.ProgramNode([], []); 
+break;
+case 7: this.$ = new yy.ProgramNode([]); 
+break;
+case 8: this.$ = [$$[$0]]; 
+break;
+case 9: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; 
+break;
+case 10: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]); 
+break;
+case 11: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]); 
+break;
+case 12: this.$ = $$[$0]; 
+break;
+case 13: this.$ = $$[$0]; 
+break;
+case 14: this.$ = new yy.ContentNode($$[$0]); 
+break;
+case 15: this.$ = new yy.CommentNode($$[$0]); 
+break;
+case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); 
+break;
+case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]); 
+break;
+case 18: this.$ = $$[$0-1]; 
+break;
+case 19:
+    // Parsing out the '&' escape token at this level saves ~500 bytes after min due to the removal of one parser node.
+    this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2][2] === '&');
+  
+break;
+case 20: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true); 
+break;
+case 21: this.$ = new yy.PartialNode($$[$0-1]); 
+break;
+case 22: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]); 
+break;
+case 23: 
+break;
+case 24: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]]; 
+break;
+case 25: this.$ = [[$$[$0-1]].concat($$[$0]), null]; 
+break;
+case 26: this.$ = [[$$[$0-1]], $$[$0]]; 
+break;
+case 27: this.$ = [[$$[$0]], null]; 
+break;
+case 28: this.$ = [[$$[$0]], null]; 
+break;
+case 29: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; 
+break;
+case 30: this.$ = [$$[$0]]; 
+break;
+case 31: this.$ = $$[$0]; 
+break;
+case 32: this.$ = new yy.StringNode($$[$0]); 
+break;
+case 33: this.$ = new yy.IntegerNode($$[$0]); 
+break;
+case 34: this.$ = new yy.BooleanNode($$[$0]); 
+break;
+case 35: this.$ = $$[$0]; 
+break;
+case 36: this.$ = new yy.HashNode($$[$0]); 
+break;
+case 37: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; 
+break;
+case 38: this.$ = [$$[$0]]; 
+break;
+case 39: this.$ = [$$[$0-2], $$[$0]]; 
+break;
+case 40: this.$ = [$$[$0-2], new yy.StringNode($$[$0])]; 
+break;
+case 41: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])]; 
+break;
+case 42: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])]; 
+break;
+case 43: this.$ = [$$[$0-2], $$[$0]]; 
+break;
+case 44: this.$ = new yy.PartialNameNode($$[$0]); 
+break;
+case 45: this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0])); 
+break;
+case 46: this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0])); 
+break;
+case 47: this.$ = new yy.DataNode($$[$0]); 
+break;
+case 48: this.$ = new yy.IdNode($$[$0]); 
+break;
+case 49: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2]; 
+break;
+case 50: this.$ = [{part: $$[$0]}]; 
+break;
+}
+},
+table: [{3:1,4:2,5:[2,7],6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],22:[1,14],23:[1,15],25:[1,16]},{1:[3]},{5:[1,17]},{5:[2,6],7:18,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,6],22:[1,14],23:[1,15],25:[1,16]},{5:[2,5],6:20,8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,5],22:[1,14],23:[1,15],25:[1,16]},{17:23,18:[1,22],21:24,29:25,36:[1,28],38:[1,27],39:26},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],25:[2,8]},{4:29,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],25:[1,16]},{4:30,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],25:[1,16]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{17:31,21:24,29:25,36:[1,28],38:[1,27],39:26},{17:32,21:24,29:25,36:[1,28],38:[1,27],39:26},{17:33,21:24,29:25,36:[1,28],38:[1,27],39:26},{21:35,26:34,31:[1,36],32:[1,37],36:[1,28],39:26},{1:[2,1]},{5:[2,2],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,2],22:[1,14],23:[1,15],25:[1,16]},{17:23,21:24,29:25,36:[1,28],38:[1,27],39:26},{5:[2,4],7:38,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,4],22:[1,14],23:[1,15],25:[1,16]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{5:[2,23],14:[2,23],15:[2,23],16:[2,23],19:[2,23],20:[2,23],22:[2,23],23:[2,23],25:[2,23]},{18:[1,39]},{18:[2,27],21:44,24:[2,27],27:40,28:41,29:48,30:42,31:[1,45],32:[1,46],33:[1,47],34:43,35:49,36:[1,50],38:[1,27],39:26},{18:[2,28],24:[2,28]},{18:[2,48],24:[2,48],31:[2,48],32:[2,48],33:[2,48],36:[2,48],38:[2,48],40:[1,51]},{21:52,36:[1,28],39:26},{18:[2,50],24:[2,50],31:[2,50],32:[2,50],33:[2,50],36:[2,50],38:[2,50],40:[2,50]},{10:53,20:[1,54]},{10:55,20:[1,54]},{18:[1,56]},{18:[1,57]},{24:[1,58]},{18:[1,59],21:60,36:[1,28],39:26},{18:[2,44],36:[2,44]},{18:[2,45],36:[2,45]},{18:[2,46],36:[2,46]},{5:[2,3],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,3],22:[1,14],23:[1,15],25:[1,16]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{18:[2,25],21:44,24:[2,25],28:61,29:48,30:62,31:[1,45],32:[1,46],33:[1,47],34:43,35:49,36:[1,50],38:[1,27],39:26},{18:[2,26],24:[2,26]},{18:[2,30],24:[2,30],31:[2,30],32:[2,30],33:[2,30],36:[2,30],38:[2,30]},{18:[2,36],24:[2,36],35:63,36:[1,64]},{18:[2,31],24:[2,31],31:[2,31],32:[2,31],33:[2,31],36:[2,31],38:[2,31]},{18:[2,32],24:[2,32],31:[2,32],32:[2,32],33:[2,32],36:[2,32],38:[2,32]},{18:[2,33],24:[2,33],31:[2,33],32:[2,33],33:[2,33],36:[2,33],38:[2,33]},{18:[2,34],24:[2,34],31:[2,34],32:[2,34],33:[2,34],36:[2,34],38:[2,34]},{18:[2,35],24:[2,35],31:[2,35],32:[2,35],33:[2,35],36:[2,35],38:[2,35]},{18:[2,38],24:[2,38],36:[2,38]},{18:[2,50],24:[2,50],31:[2,50],32:[2,50],33:[2,50],36:[2,50],37:[1,65],38:[2,50],40:[2,50]},{36:[1,66]},{18:[2,47],24:[2,47],31:[2,47],32:[2,47],33:[2,47],36:[2,47],38:[2,47]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{21:67,36:[1,28],39:26},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[1,68]},{18:[2,24],24:[2,24]},{18:[2,29],24:[2,29],31:[2,29],32:[2,29],33:[2,29],36:[2,29],38:[2,29]},{18:[2,37],24:[2,37],36:[2,37]},{37:[1,65]},{21:69,29:73,31:[1,70],32:[1,71],33:[1,72],36:[1,28],38:[1,27],39:26},{18:[2,49],24:[2,49],31:[2,49],32:[2,49],33:[2,49],36:[2,49],38:[2,49],40:[2,49]},{18:[1,74]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{18:[2,39],24:[2,39],36:[2,39]},{18:[2,40],24:[2,40],36:[2,40]},{18:[2,41],24:[2,41],36:[2,41]},{18:[2,42],24:[2,42],36:[2,42]},{18:[2,43],24:[2,43],36:[2,43]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]}],
+defaultActions: {17:[2,1]},
+parseError: function parseError(str, hash) {
+    throw new Error(str);
+},
+parse: function parse(input) {
+    var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
+    this.lexer.setInput(input);
+    this.lexer.yy = this.yy;
+    this.yy.lexer = this.lexer;
+    this.yy.parser = this;
+    if (typeof this.lexer.yylloc == "undefined")
+        this.lexer.yylloc = {};
+    var yyloc = this.lexer.yylloc;
+    lstack.push(yyloc);
+    var ranges = this.lexer.options && this.lexer.options.ranges;
+    if (typeof this.yy.parseError === "function")
+        this.parseError = this.yy.parseError;
+    function popStack(n) {
+        stack.length = stack.length - 2 * n;
+        vstack.length = vstack.length - n;
+        lstack.length = lstack.length - n;
+    }
+    function lex() {
+        var token;
+        token = self.lexer.lex() || 1;
+        if (typeof token !== "number") {
+            token = self.symbols_[token] || token;
+        }
+        return token;
+    }
+    var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
+    while (true) {
+        state = stack[stack.length - 1];
+        if (this.defaultActions[state]) {
+            action = this.defaultActions[state];
+        } else {
+            if (symbol === null || typeof symbol == "undefined") {
+                symbol = lex();
+            }
+            action = table[state] && table[state][symbol];
+        }
+        if (typeof action === "undefined" || !action.length || !action[0]) {
+            var errStr = "";
+            if (!recovering) {
+                expected = [];
+                for (p in table[state])
+                    if (this.terminals_[p] && p > 2) {
+                        expected.push("'" + this.terminals_[p] + "'");
+                    }
+                if (this.lexer.showPosition) {
+                    errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+                } else {
+                    errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
+                }
+                this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
+            }
+        }
+        if (action[0] instanceof Array && action.length > 1) {
+            throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+        }
+        switch (action[0]) {
+        case 1:
+            stack.push(symbol);
+            vstack.push(this.lexer.yytext);
+            lstack.push(this.lexer.yylloc);
+            stack.push(action[1]);
+            symbol = null;
+            if (!preErrorSymbol) {
+                yyleng = this.lexer.yyleng;
+                yytext = this.lexer.yytext;
+                yylineno = this.lexer.yylineno;
+                yyloc = this.lexer.yylloc;
+                if (recovering > 0)
+                    recovering--;
+            } else {
+                symbol = preErrorSymbol;
+                preErrorSymbol = null;
+            }
+            break;
+        case 2:
+            len = this.productions_[action[1]][1];
+            yyval.$ = vstack[vstack.length - len];
+            yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
+            if (ranges) {
+                yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
+            }
+            r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
+            if (typeof r !== "undefined") {
+                return r;
+            }
+            if (len) {
+                stack = stack.slice(0, -1 * len * 2);
+                vstack = vstack.slice(0, -1 * len);
+                lstack = lstack.slice(0, -1 * len);
+            }
+            stack.push(this.productions_[action[1]][0]);
+            vstack.push(yyval.$);
+            lstack.push(yyval._$);
+            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+            stack.push(newState);
+            break;
+        case 3:
+            return true;
+        }
+    }
+    return true;
+}
+};
+/* Jison generated lexer */
+var lexer = (function(){
+var lexer = ({EOF:1,
+parseError:function parseError(str, hash) {
+        if (this.yy.parser) {
+            this.yy.parser.parseError(str, hash);
+        } else {
+            throw new Error(str);
+        }
+    },
+setInput:function (input) {
+        this._input = input;
+        this._more = this._less = this.done = false;
+        this.yylineno = this.yyleng = 0;
+        this.yytext = this.matched = this.match = '';
+        this.conditionStack = ['INITIAL'];
+        this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
+        if (this.options.ranges) this.yylloc.range = [0,0];
+        this.offset = 0;
+        return this;
+    },
+input:function () {
+        var ch = this._input[0];
+        this.yytext += ch;
+        this.yyleng++;
+        this.offset++;
+        this.match += ch;
+        this.matched += ch;
+        var lines = ch.match(/(?:\r\n?|\n).*/g);
+        if (lines) {
+            this.yylineno++;
+            this.yylloc.last_line++;
+        } else {
+            this.yylloc.last_column++;
+        }
+        if (this.options.ranges) this.yylloc.range[1]++;
+
+        this._input = this._input.slice(1);
+        return ch;
+    },
+unput:function (ch) {
+        var len = ch.length;
+        var lines = ch.split(/(?:\r\n?|\n)/g);
+
+        this._input = ch + this._input;
+        this.yytext = this.yytext.substr(0, this.yytext.length-len-1);
+        //this.yyleng -= len;
+        this.offset -= len;
+        var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+        this.match = this.match.substr(0, this.match.length-1);
+        this.matched = this.matched.substr(0, this.matched.length-1);
+
+        if (lines.length-1) this.yylineno -= lines.length-1;
+        var r = this.yylloc.range;
+
+        this.yylloc = {first_line: this.yylloc.first_line,
+          last_line: this.yylineno+1,
+          first_column: this.yylloc.first_column,
+          last_column: lines ?
+              (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:
+              this.yylloc.first_column - len
+          };
+
+        if (this.options.ranges) {
+            this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+        }
+        return this;
+    },
+more:function () {
+        this._more = true;
+        return this;
+    },
+less:function (n) {
+        this.unput(this.match.slice(n));
+    },
+pastInput:function () {
+        var past = this.matched.substr(0, this.matched.length - this.match.length);
+        return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
+    },
+upcomingInput:function () {
+        var next = this.match;
+        if (next.length < 20) {
+            next += this._input.substr(0, 20-next.length);
+        }
+        return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
+    },
+showPosition:function () {
+        var pre = this.pastInput();
+        var c = new Array(pre.length + 1).join("-");
+        return pre + this.upcomingInput() + "\n" + c+"^";
+    },
+next:function () {
+        if (this.done) {
+            return this.EOF;
+        }
+        if (!this._input) this.done = true;
+
+        var token,
+            match,
+            tempMatch,
+            index,
+            col,
+            lines;
+        if (!this._more) {
+            this.yytext = '';
+            this.match = '';
+        }
+        var rules = this._currentRules();
+        for (var i=0;i < rules.length; i++) {
+            tempMatch = this._input.match(this.rules[rules[i]]);
+            if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+                match = tempMatch;
+                index = i;
+                if (!this.options.flex) break;
+            }
+        }
+        if (match) {
+            lines = match[0].match(/(?:\r\n?|\n).*/g);
+            if (lines) this.yylineno += lines.length;
+            this.yylloc = {first_line: this.yylloc.last_line,
+                           last_line: this.yylineno+1,
+                           first_column: this.yylloc.last_column,
+                           last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length};
+            this.yytext += match[0];
+            this.match += match[0];
+            this.matches = match;
+            this.yyleng = this.yytext.length;
+            if (this.options.ranges) {
+                this.yylloc.range = [this.offset, this.offset += this.yyleng];
+            }
+            this._more = false;
+            this._input = this._input.slice(match[0].length);
+            this.matched += match[0];
+            token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
+            if (this.done && this._input) this.done = false;
+            if (token) return token;
+            else return;
+        }
+        if (this._input === "") {
+            return this.EOF;
+        } else {
+            return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
+                    {text: "", token: null, line: this.yylineno});
+        }
+    },
+lex:function lex() {
+        var r = this.next();
+        if (typeof r !== 'undefined') {
+            return r;
+        } else {
+            return this.lex();
+        }
+    },
+begin:function begin(condition) {
+        this.conditionStack.push(condition);
+    },
+popState:function popState() {
+        return this.conditionStack.pop();
+    },
+_currentRules:function _currentRules() {
+        return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
+    },
+topState:function () {
+        return this.conditionStack[this.conditionStack.length-2];
+    },
+pushState:function begin(condition) {
+        this.begin(condition);
+    }});
+lexer.options = {};
+lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
+
+var YYSTATE=YY_START
+switch($avoiding_name_collisions) {
+case 0: yy_.yytext = "\\"; return 14; 
+break;
+case 1:
+                                   if(yy_.yytext.slice(-1) !== "\\") this.begin("mu");
+                                   if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu");
+                                   if(yy_.yytext) return 14;
+                                 
+break;
+case 2: return 14; 
+break;
+case 3:
+                                   if(yy_.yytext.slice(-1) !== "\\") this.popState();
+                                   if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1);
+                                   return 14;
+                                 
+break;
+case 4: yy_.yytext = yy_.yytext.substr(0, yy_.yyleng-4); this.popState(); return 15; 
+break;
+case 5: return 25; 
+break;
+case 6: return 16; 
+break;
+case 7: return 20; 
+break;
+case 8: return 19; 
+break;
+case 9: return 19; 
+break;
+case 10: return 23; 
+break;
+case 11: return 22; 
+break;
+case 12: this.popState(); this.begin('com'); 
+break;
+case 13: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15; 
+break;
+case 14: return 22; 
+break;
+case 15: return 37; 
+break;
+case 16: return 36; 
+break;
+case 17: return 36; 
+break;
+case 18: return 40; 
+break;
+case 19: /*ignore whitespace*/ 
+break;
+case 20: this.popState(); return 24; 
+break;
+case 21: this.popState(); return 18; 
+break;
+case 22: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 31; 
+break;
+case 23: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\'/g,"'"); return 31; 
+break;
+case 24: return 38; 
+break;
+case 25: return 33; 
+break;
+case 26: return 33; 
+break;
+case 27: return 32; 
+break;
+case 28: return 36; 
+break;
+case 29: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 36; 
+break;
+case 30: return 'INVALID'; 
+break;
+case 31: return 5; 
+break;
+}
+};
+lexer.rules = [/^(?:\\\\(?=(\{\{)))/,/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|$)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\{\{>)/,/^(?:\{\{#)/,/^(?:\{\{\/)/,/^(?:\{\{\^)/,/^(?:\{\{\s*else\b)/,/^(?:\{\{\{)/,/^(?:\{\{&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{)/,/^(?:=)/,/^(?:\.(?=[}\/ ]))/,/^(?:\.\.)/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}\}\})/,/^(?:\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=[}\s]))/,/^(?:false(?=[}\s]))/,/^(?:-?[0-9]+(?=[}\s]))/,/^(?:[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.]))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
+lexer.conditions = {"mu":{"rules":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],"inclusive":false},"emu":{"rules":[3],"inclusive":false},"com":{"rules":[4],"inclusive":false},"INITIAL":{"rules":[0,1,2,31],"inclusive":true}};
+return lexer;})()
+parser.lexer = lexer;
+function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
+return new Parser;
+})();;
+// lib/handlebars/compiler/base.js
+
+Handlebars.Parser = handlebars;
+
+Handlebars.parse = function(input) {
+
+  // Just return if an already-compile AST was passed in.
+  if(input.constructor === Handlebars.AST.ProgramNode) { return input; }
+
+  Handlebars.Parser.yy = Handlebars.AST;
+  return Handlebars.Parser.parse(input);
+};
+;
+// lib/handlebars/compiler/ast.js
+Handlebars.AST = {};
+
+Handlebars.AST.ProgramNode = function(statements, inverse) {
+  this.type = "program";
+  this.statements = statements;
+  if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); }
+};
+
+Handlebars.AST.MustacheNode = function(rawParams, hash, unescaped) {
+  this.type = "mustache";
+  this.escaped = !unescaped;
+  this.hash = hash;
+
+  var id = this.id = rawParams[0];
+  var params = this.params = rawParams.slice(1);
+
+  // a mustache is an eligible helper if:
+  // * its id is simple (a single part, not `this` or `..`)
+  var eligibleHelper = this.eligibleHelper = id.isSimple;
+
+  // a mustache is definitely a helper if:
+  // * it is an eligible helper, and
+  // * it has at least one parameter or hash segment
+  this.isHelper = eligibleHelper && (params.length || hash);
+
+  // if a mustache is an eligible helper but not a definite
+  // helper, it is ambiguous, and will be resolved in a later
+  // pass or at runtime.
+};
+
+Handlebars.AST.PartialNode = function(partialName, context) {
+  this.type         = "partial";
+  this.partialName  = partialName;
+  this.context      = context;
+};
+
+Handlebars.AST.BlockNode = function(mustache, program, inverse, close) {
+  var verifyMatch = function(open, close) {
+    if(open.original !== close.original) {
+      throw new Handlebars.Exception(open.original + " doesn't match " + close.original);
+    }
+  };
+
+  verifyMatch(mustache.id, close);
+  this.type = "block";
+  this.mustache = mustache;
+  this.program  = program;
+  this.inverse  = inverse;
+
+  if (this.inverse && !this.program) {
+    this.isInverse = true;
+  }
+};
+
+Handlebars.AST.ContentNode = function(string) {
+  this.type = "content";
+  this.string = string;
+};
+
+Handlebars.AST.HashNode = function(pairs) {
+  this.type = "hash";
+  this.pairs = pairs;
+};
+
+Handlebars.AST.IdNode = function(parts) {
+  this.type = "ID";
+
+  var original = "",
+      dig = [],
+      depth = 0;
+
+  for(var i=0,l=parts.length; i<l; i++) {
+    var part = parts[i].part;
+    original += (parts[i].separator || '') + part;
+
+    if (part === ".." || part === "." || part === "this") {
+      if (dig.length > 0) { throw new Handlebars.Exception("Invalid path: " + original); }
+      else if (part === "..") { depth++; }
+      else { this.isScoped = true; }
+    }
+    else { dig.push(part); }
+  }
+
+  this.original = original;
+  this.parts    = dig;
+  this.string   = dig.join('.');
+  this.depth    = depth;
+
+  // an ID is simple if it only has one part, and that part is not
+  // `..` or `this`.
+  this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;
+
+  this.stringModeValue = this.string;
+};
+
+Handlebars.AST.PartialNameNode = function(name) {
+  this.type = "PARTIAL_NAME";
+  this.name = name.original;
+};
+
+Handlebars.AST.DataNode = function(id) {
+  this.type = "DATA";
+  this.id = id;
+};
+
+Handlebars.AST.StringNode = function(string) {
+  this.type = "STRING";
+  this.original =
+    this.string =
+    this.stringModeValue = string;
+};
+
+Handlebars.AST.IntegerNode = function(integer) {
+  this.type = "INTEGER";
+  this.original =
+    this.integer = integer;
+  this.stringModeValue = Number(integer);
+};
+
+Handlebars.AST.BooleanNode = function(bool) {
+  this.type = "BOOLEAN";
+  this.bool = bool;
+  this.stringModeValue = bool === "true";
+};
+
+Handlebars.AST.CommentNode = function(comment) {
+  this.type = "comment";
+  this.comment = comment;
+};
+;
+// lib/handlebars/utils.js
+
+var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
+
+Handlebars.Exception = function(message) {
+  var tmp = Error.prototype.constructor.apply(this, arguments);
+
+  // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
+  for (var idx = 0; idx < errorProps.length; idx++) {
+    this[errorProps[idx]] = tmp[errorProps[idx]];
+  }
+};
+Handlebars.Exception.prototype = new Error();
+
+// Build out our basic SafeString type
+Handlebars.SafeString = function(string) {
+  this.string = string;
+};
+Handlebars.SafeString.prototype.toString = function() {
+  return this.string.toString();
+};
+
+var escape = {
+  "&": "&amp;",
+  "<": "&lt;",
+  ">": "&gt;",
+  '"': "&quot;",
+  "'": "&#x27;",
+  "`": "&#x60;"
+};
+
+var badChars = /[&<>"'`]/g;
+var possible = /[&<>"'`]/;
+
+var escapeChar = function(chr) {
+  return escape[chr] || "&amp;";
+};
+
+Handlebars.Utils = {
+  extend: function(obj, value) {
+    for(var key in value) {
+      if(value.hasOwnProperty(key)) {
+        obj[key] = value[key];
+      }
+    }
+  },
+
+  escapeExpression: function(string) {
+    // don't escape SafeStrings, since they're already safe
+    if (string instanceof Handlebars.SafeString) {
+      return string.toString();
+    } else if (string == null || string === false) {
+      return "";
+    }
+
+    // Force a string conversion as this will be done by the append regardless and
+    // the regex test will do this transparently behind the scenes, causing issues if
+    // an object's to string has escaped characters in it.
+    string = string.toString();
+
+    if(!possible.test(string)) { return string; }
+    return string.replace(badChars, escapeChar);
+  },
+
+  isEmpty: function(value) {
+    if (!value && value !== 0) {
+      return true;
+    } else if(toString.call(value) === "[object Array]" && value.length === 0) {
+      return true;
+    } else {
+      return false;
+    }
+  }
+};
+;
+// lib/handlebars/compiler/compiler.js
+
+/*jshint eqnull:true*/
+var Compiler = Handlebars.Compiler = function() {};
+var JavaScriptCompiler = Handlebars.JavaScriptCompiler = function() {};
+
+// the foundHelper register will disambiguate helper lookup from finding a
+// function in a context. This is necessary for mustache compatibility, which
+// requires that context functions in blocks are evaluated by blockHelperMissing,
+// and then proceed as if the resulting value was provided to blockHelperMissing.
+
+Compiler.prototype = {
+  compiler: Compiler,
+
+  disassemble: function() {
+    var opcodes = this.opcodes, opcode, out = [], params, param;
+
+    for (var i=0, l=opcodes.length; i<l; i++) {
+      opcode = opcodes[i];
+
+      if (opcode.opcode === 'DECLARE') {
+        out.push("DECLARE " + opcode.name + "=" + opcode.value);
+      } else {
+        params = [];
+        for (var j=0; j<opcode.args.length; j++) {
+          param = opcode.args[j];
+          if (typeof param === "string") {
+            param = "\"" + param.replace("\n", "\\n") + "\"";
+          }
+          params.push(param);
+        }
+        out.push(opcode.opcode + " " + params.join(" "));
+      }
+    }
+
+    return out.join("\n");
+  },
+  equals: function(other) {
+    var len = this.opcodes.length;
+    if (other.opcodes.length !== len) {
+      return false;
+    }
+
+    for (var i = 0; i < len; i++) {
+      var opcode = this.opcodes[i],
+          otherOpcode = other.opcodes[i];
+      if (opcode.opcode !== otherOpcode.opcode || opcode.args.length !== otherOpcode.args.length) {
+        return false;
+      }
+      for (var j = 0; j < opcode.args.length; j++) {
+        if (opcode.args[j] !== otherOpcode.args[j]) {
+          return false;
+        }
+      }
+    }
+
+    len = this.children.length;
+    if (other.children.length !== len) {
+      return false;
+    }
+    for (i = 0; i < len; i++) {
+      if (!this.children[i].equals(other.children[i])) {
+        return false;
+      }
+    }
+
+    return true;
+  },
+
+  guid: 0,
+
+  compile: function(program, options) {
+    this.children = [];
+    this.depths = {list: []};
+    this.options = options;
+
+    // These changes will propagate to the other compiler components
+    var knownHelpers = this.options.knownHelpers;
+    this.options.knownHelpers = {
+      'helperMissing': true,
+      'blockHelperMissing': true,
+      'each': true,
+      'if': true,
+      'unless': true,
+      'with': true,
+      'log': true
+    };
+    if (knownHelpers) {
+      for (var name in knownHelpers) {
+        this.options.knownHelpers[name] = knownHelpers[name];
+      }
+    }
+
+    return this.program(program);
+  },
+
+  accept: function(node) {
+    return this[node.type](node);
+  },
+
+  program: function(program) {
+    var statements = program.statements, statement;
+    this.opcodes = [];
+
+    for(var i=0, l=statements.length; i<l; i++) {
+      statement = statements[i];
+      this[statement.type](statement);
+    }
+    this.isSimple = l === 1;
+
+    this.depths.list = this.depths.list.sort(function(a, b) {
+      return a - b;
+    });
+
+    return this;
+  },
+
+  compileProgram: function(program) {
+    var result = new this.compiler().compile(program, this.options);
+    var guid = this.guid++, depth;
+
+    this.usePartial = this.usePartial || result.usePartial;
+
+    this.children[guid] = result;
+
+    for(var i=0, l=result.depths.list.length; i<l; i++) {
+      depth = result.depths.list[i];
+
+      if(depth < 2) { continue; }
+      else { this.addDepth(depth - 1); }
+    }
+
+    return guid;
+  },
+
+  block: function(block) {
+    var mustache = block.mustache,
+        program = block.program,
+        inverse = block.inverse;
+
+    if (program) {
+      program = this.compileProgram(program);
+    }
+
+    if (inverse) {
+      inverse = this.compileProgram(inverse);
+    }
+
+    var type = this.classifyMustache(mustache);
+
+    if (type === "helper") {
+      this.helperMustache(mustache, program, inverse);
+    } else if (type === "simple") {
+      this.simpleMustache(mustache);
+
+      // now that the simple mustache is resolved, we need to
+      // evaluate it by executing `blockHelperMissing`
+      this.opcode('pushProgram', program);
+      this.opcode('pushProgram', inverse);
+      this.opcode('emptyHash');
+      this.opcode('blockValue');
+    } else {
+      this.ambiguousMustache(mustache, program, inverse);
+
+      // now that the simple mustache is resolved, we need to
+      // evaluate it by executing `blockHelperMissing`
+      this.opcode('pushProgram', program);
+      this.opcode('pushProgram', inverse);
+      this.opcode('emptyHash');
+      this.opcode('ambiguousBlockValue');
+    }
+
+    this.opcode('append');
+  },
+
+  hash: function(hash) {
+    var pairs = hash.pairs, pair, val;
+
+    this.opcode('pushHash');
+
+    for(var i=0, l=pairs.length; i<l; i++) {
+      pair = pairs[i];
+      val  = pair[1];
+
+      if (this.options.stringParams) {
+        if(val.depth) {
+          this.addDepth(val.depth);
+        }
+        this.opcode('getContext', val.depth || 0);
+        this.opcode('pushStringParam', val.stringModeValue, val.type);
+      } else {
+        this.accept(val);
+      }
+
+      this.opcode('assignToHash', pair[0]);
+    }
+    this.opcode('popHash');
+  },
+
+  partial: function(partial) {
+    var partialName = partial.partialName;
+    this.usePartial = true;
+
+    if(partial.context) {
+      this.ID(partial.context);
+    } else {
+      this.opcode('push', 'depth0');
+    }
+
+    this.opcode('invokePartial', partialName.name);
+    this.opcode('append');
+  },
+
+  content: function(content) {
+    this.opcode('appendContent', content.string);
+  },
+
+  mustache: function(mustache) {
+    var options = this.options;
+    var type = this.classifyMustache(mustache);
+
+    if (type === "simple") {
+      this.simpleMustache(mustache);
+    } else if (type === "helper") {
+      this.helperMustache(mustache);
+    } else {
+      this.ambiguousMustache(mustache);
+    }
+
+    if(mustache.escaped && !options.noEscape) {
+      this.opcode('appendEscaped');
+    } else {
+      this.opcode('append');
+    }
+  },
+
+  ambiguousMustache: function(mustache, program, inverse) {
+    var id = mustache.id,
+        name = id.parts[0],
+        isBlock = program != null || inverse != null;
+
+    this.opcode('getContext', id.depth);
+
+    this.opcode('pushProgram', program);
+    this.opcode('pushProgram', inverse);
+
+    this.opcode('invokeAmbiguous', name, isBlock);
+  },
+
+  simpleMustache: function(mustache) {
+    var id = mustache.id;
+
+    if (id.type === 'DATA') {
+      this.DATA(id);
+    } else if (id.parts.length) {
+      this.ID(id);
+    } else {
+      // Simplified ID for `this`
+      this.addDepth(id.depth);
+      this.opcode('getContext', id.depth);
+      this.opcode('pushContext');
+    }
+
+    this.opcode('resolvePossibleLambda');
+  },
+
+  helperMustache: function(mustache, program, inverse) {
+    var params = this.setupFullMustacheParams(mustache, program, inverse),
+        name = mustache.id.parts[0];
+
+    if (this.options.knownHelpers[name]) {
+      this.opcode('invokeKnownHelper', params.length, name);
+    } else if (this.options.knownHelpersOnly) {
+      throw new Error("You specified knownHelpersOnly, but used the unknown helper " + name);
+    } else {
+      this.opcode('invokeHelper', params.length, name);
+    }
+  },
+
+  ID: function(id) {
+    this.addDepth(id.depth);
+    this.opcode('getContext', id.depth);
+
+    var name = id.parts[0];
+    if (!name) {
+      this.opcode('pushContext');
+    } else {
+      this.opcode('lookupOnContext', id.parts[0]);
+    }
+
+    for(var i=1, l=id.parts.length; i<l; i++) {
+      this.opcode('lookup', id.parts[i]);
+    }
+  },
+
+  DATA: function(data) {
+    this.options.data = true;
+    if (data.id.isScoped || data.id.depth) {
+      throw new Handlebars.Exception('Scoped data references are not supported: ' + data.original);
+    }
+
+    this.opcode('lookupData');
+    var parts = data.id.parts;
+    for(var i=0, l=parts.length; i<l; i++) {
+      this.opcode('lookup', parts[i]);
+    }
+  },
+
+  STRING: function(string) {
+    this.opcode('pushString', string.string);
+  },
+
+  INTEGER: function(integer) {
+    this.opcode('pushLiteral', integer.integer);
+  },
+
+  BOOLEAN: function(bool) {
+    this.opcode('pushLiteral', bool.bool);
+  },
+
+  comment: function() {},
+
+  // HELPERS
+  opcode: function(name) {
+    this.opcodes.push({ opcode: name, args: [].slice.call(arguments, 1) });
+  },
+
+  declare: function(name, value) {
+    this.opcodes.push({ opcode: 'DECLARE', name: name, value: value });
+  },
+
+  addDepth: function(depth) {
+    if(isNaN(depth)) { throw new Error("EWOT"); }
+    if(depth === 0) { return; }
+
+    if(!this.depths[depth]) {
+      this.depths[depth] = true;
+      this.depths.list.push(depth);
+    }
+  },
+
+  classifyMustache: function(mustache) {
+    var isHelper   = mustache.isHelper;
+    var isEligible = mustache.eligibleHelper;
+    var options    = this.options;
+
+    // if ambiguous, we can possibly resolve the ambiguity now
+    if (isEligible && !isHelper) {
+      var name = mustache.id.parts[0];
+
+      if (options.knownHelpers[name]) {
+        isHelper = true;
+      } else if (options.knownHelpersOnly) {
+        isEligible = false;
+      }
+    }
+
+    if (isHelper) { return "helper"; }
+    else if (isEligible) { return "ambiguous"; }
+    else { return "simple"; }
+  },
+
+  pushParams: function(params) {
+    var i = params.length, param;
+
+    while(i--) {
+      param = params[i];
+
+      if(this.options.stringParams) {
+        if(param.depth) {
+          this.addDepth(param.depth);
+        }
+
+        this.opcode('getContext', param.depth || 0);
+        this.opcode('pushStringParam', param.stringModeValue, param.type);
+      } else {
+        this[param.type](param);
+      }
+    }
+  },
+
+  setupMustacheParams: function(mustache) {
+    var params = mustache.params;
+    this.pushParams(params);
+
+    if(mustache.hash) {
+      this.hash(mustache.hash);
+    } else {
+      this.opcode('emptyHash');
+    }
+
+    return params;
+  },
+
+  // this will replace setupMustacheParams when we're done
+  setupFullMustacheParams: function(mustache, program, inverse) {
+    var params = mustache.params;
+    this.pushParams(params);
+
+    this.opcode('pushProgram', program);
+    this.opcode('pushProgram', inverse);
+
+    if(mustache.hash) {
+      this.hash(mustache.hash);
+    } else {
+      this.opcode('emptyHash');
+    }
+
+    return params;
+  }
+};
+
+var Literal = function(value) {
+  this.value = value;
+};
+
+JavaScriptCompiler.prototype = {
+  // PUBLIC API: You can override these methods in a subclass to provide
+  // alternative compiled forms for name lookup and buffering semantics
+  nameLookup: function(parent, name /* , type*/) {
+    if (/^[0-9]+$/.test(name)) {
+      return parent + "[" + name + "]";
+    } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
+      return parent + "." + name;
+    }
+    else {
+      return parent + "['" + name + "']";
+    }
+  },
+
+  appendToBuffer: function(string) {
+    if (this.environment.isSimple) {
+      return "return " + string + ";";
+    } else {
+      return {
+        appendToBuffer: true,
+        content: string,
+        toString: function() { return "buffer += " + string + ";"; }
+      };
+    }
+  },
+
+  initializeBuffer: function() {
+    return this.quotedString("");
+  },
+
+  namespace: "Handlebars",
+  // END PUBLIC API
+
+  compile: function(environment, options, context, asObject) {
+    this.environment = environment;
+    this.options = options || {};
+
+    Handlebars.log(Handlebars.logger.DEBUG, this.environment.disassemble() + "\n\n");
+
+    this.name = this.environment.name;
+    this.isChild = !!context;
+    this.context = context || {
+      programs: [],
+      environments: [],
+      aliases: { }
+    };
+
+    this.preamble();
+
+    this.stackSlot = 0;
+    this.stackVars = [];
+    this.registers = { list: [] };
+    this.compileStack = [];
+    this.inlineStack = [];
+
+    this.compileChildren(environment, options);
+
+    var opcodes = environment.opcodes, opcode;
+
+    this.i = 0;
+
+    for(l=opcodes.length; this.i<l; this.i++) {
+      opcode = opcodes[this.i];
+
+      if(opcode.opcode === 'DECLARE') {
+        this[opcode.name] = opcode.value;
+      } else {
+        this[opcode.opcode].apply(this, opcode.args);
+      }
+    }
+
+    return this.createFunctionContext(asObject);
+  },
+
+  nextOpcode: function() {
+    var opcodes = this.environment.opcodes;
+    return opcodes[this.i + 1];
+  },
+
+  eat: function() {
+    this.i = this.i + 1;
+  },
+
+  preamble: function() {
+    var out = [];
+
+    if (!this.isChild) {
+      var namespace = this.namespace;
+
+      var copies = "helpers = this.merge(helpers, " + namespace + ".helpers);";
+      if (this.environment.usePartial) { copies = copies + " partials = this.merge(partials, " + namespace + ".partials);"; }
+      if (this.options.data) { copies = copies + " data = data || {};"; }
+      out.push(copies);
+    } else {
+      out.push('');
+    }
+
+    if (!this.environment.isSimple) {
+      out.push(", buffer = " + this.initializeBuffer());
+    } else {
+      out.push("");
+    }
+
+    // track the last context pushed into place to allow skipping the
+    // getContext opcode when it would be a noop
+    this.lastContext = 0;
+    this.source = out;
+  },
+
+  createFunctionContext: function(asObject) {
+    var locals = this.stackVars.concat(this.registers.list);
+
+    if(locals.length > 0) {
+      this.source[1] = this.source[1] + ", " + locals.join(", ");
+    }
+
+    // Generate minimizer alias mappings
+    if (!this.isChild) {
+      for (var alias in this.context.aliases) {
+        if (this.context.aliases.hasOwnProperty(alias)) {
+          this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];
+        }
+      }
+    }
+
+    if (this.source[1]) {
+      this.source[1] = "var " + this.source[1].substring(2) + ";";
+    }
+
+    // Merge children
+    if (!this.isChild) {
+      this.source[1] += '\n' + this.context.programs.join('\n') + '\n';
+    }
+
+    if (!this.environment.isSimple) {
+      this.source.push("return buffer;");
+    }
+
+    var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"];
+
+    for(var i=0, l=this.environment.depths.list.length; i<l; i++) {
+      params.push("depth" + this.environment.depths.list[i]);
+    }
+
+    // Perform a second pass over the output to merge content when possible
+    var source = this.mergeSource();
+
+    if (!this.isChild) {
+      var revision = Handlebars.COMPILER_REVISION,
+          versions = Handlebars.REVISION_CHANGES[revision];
+      source = "this.compilerInfo = ["+revision+",'"+versions+"'];\n"+source;
+    }
+
+    if (asObject) {
+      params.push(source);
+
+      return Function.apply(this, params);
+    } else {
+      var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\n  ' + source + '}';
+      Handlebars.log(Handlebars.logger.DEBUG, functionSource + "\n\n");
+      return functionSource;
+    }
+  },
+  mergeSource: function() {
+    // WARN: We are not handling the case where buffer is still populated as the source should
+    // not have buffer append operations as their final action.
+    var source = '',
+        buffer;
+    for (var i = 0, len = this.source.length; i < len; i++) {
+      var line = this.source[i];
+      if (line.appendToBuffer) {
+        if (buffer) {
+          buffer = buffer + '\n    + ' + line.content;
+        } else {
+          buffer = line.content;
+        }
+      } else {
+        if (buffer) {
+          source += 'buffer += ' + buffer + ';\n  ';
+          buffer = undefined;
+        }
+        source += line + '\n  ';
+      }
+    }
+    return source;
+  },
+
+  // [blockValue]
+  //
+  // On stack, before: hash, inverse, program, value
+  // On stack, after: return value of blockHelperMissing
+  //
+  // The purpose of this opcode is to take a block of the form
+  // `{{#foo}}...{{/foo}}`, resolve the value of `foo`, and
+  // replace it on the stack with the result of properly
+  // invoking blockHelperMissing.
+  blockValue: function() {
+    this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+
+    var params = ["depth0"];
+    this.setupParams(0, params);
+
+    this.replaceStack(function(current) {
+      params.splice(1, 0, current);
+      return "blockHelperMissing.call(" + params.join(", ") + ")";
+    });
+  },
+
+  // [ambiguousBlockValue]
+  //
+  // On stack, before: hash, inverse, program, value
+  // Compiler value, before: lastHelper=value of last found helper, if any
+  // On stack, after, if no lastHelper: same as [blockValue]
+  // On stack, after, if lastHelper: value
+  ambiguousBlockValue: function() {
+    this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+
+    var params = ["depth0"];
+    this.setupParams(0, params);
+
+    var current = this.topStack();
+    params.splice(1, 0, current);
+
+    // Use the options value generated from the invocation
+    params[params.length-1] = 'options';
+
+    this.source.push("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }");
+  },
+
+  // [appendContent]
+  //
+  // On stack, before: ...
+  // On stack, after: ...
+  //
+  // Appends the string value of `content` to the current buffer
+  appendContent: function(content) {
+    this.source.push(this.appendToBuffer(this.quotedString(content)));
+  },
+
+  // [append]
+  //
+  // On stack, before: value, ...
+  // On stack, after: ...
+  //
+  // Coerces `value` to a String and appends it to the current buffer.
+  //
+  // If `value` is truthy, or 0, it is coerced into a string and appended
+  // Otherwise, the empty string is appended
+  append: function() {
+    // Force anything that is inlined onto the stack so we don't have duplication
+    // when we examine local
+    this.flushInline();
+    var local = this.popStack();
+    this.source.push("if(" + local + " || " + local + " === 0) { " + this.appendToBuffer(local) + " }");
+    if (this.environment.isSimple) {
+      this.source.push("else { " + this.appendToBuffer("''") + " }");
+    }
+  },
+
+  // [appendEscaped]
+  //
+  // On stack, before: value, ...
+  // On stack, after: ...
+  //
+  // Escape `value` and append it to the buffer
+  appendEscaped: function() {
+    this.context.aliases.escapeExpression = 'this.escapeExpression';
+
+    this.source.push(this.appendToBuffer("escapeExpression(" + this.popStack() + ")"));
+  },
+
+  // [getContext]
+  //
+  // On stack, before: ...
+  // On stack, after: ...
+  // Compiler value, after: lastContext=depth
+  //
+  // Set the value of the `lastContext` compiler value to the depth
+  getContext: function(depth) {
+    if(this.lastContext !== depth) {
+      this.lastContext = depth;
+    }
+  },
+
+  // [lookupOnContext]
+  //
+  // On stack, before: ...
+  // On stack, after: currentContext[name], ...
+  //
+  // Looks up the value of `name` on the current context and pushes
+  // it onto the stack.
+  lookupOnContext: function(name) {
+    this.push(this.nameLookup('depth' + this.lastContext, name, 'context'));
+  },
+
+  // [pushContext]
+  //
+  // On stack, before: ...
+  // On stack, after: currentContext, ...
+  //
+  // Pushes the value of the current context onto the stack.
+  pushContext: function() {
+    this.pushStackLiteral('depth' + this.lastContext);
+  },
+
+  // [resolvePossibleLambda]
+  //
+  // On stack, before: value, ...
+  // On stack, after: resolved value, ...
+  //
+  // If the `value` is a lambda, replace it on the stack by
+  // the return value of the lambda
+  resolvePossibleLambda: function() {
+    this.context.aliases.functionType = '"function"';
+
+    this.replaceStack(function(current) {
+      return "typeof " + current + " === functionType ? " + current + ".apply(depth0) : " + current;
+    });
+  },
+
+  // [lookup]
+  //
+  // On stack, before: value, ...
+  // On stack, after: value[name], ...
+  //
+  // Replace the value on the stack with the result of looking
+  // up `name` on `value`
+  lookup: function(name) {
+    this.replaceStack(function(current) {
+      return current + " == null || " + current + " === false ? " + current + " : " + this.nameLookup(current, name, 'context');
+    });
+  },
+
+  // [lookupData]
+  //
+  // On stack, before: ...
+  // On stack, after: data[id], ...
+  //
+  // Push the result of looking up `id` on the current data
+  lookupData: function(id) {
+    this.push('data');
+  },
+
+  // [pushStringParam]
+  //
+  // On stack, before: ...
+  // On stack, after: string, currentContext, ...
+  //
+  // This opcode is designed for use in string mode, which
+  // provides the string value of a parameter along with its
+  // depth rather than resolving it immediately.
+  pushStringParam: function(string, type) {
+    this.pushStackLiteral('depth' + this.lastContext);
+
+    this.pushString(type);
+
+    if (typeof string === 'string') {
+      this.pushString(string);
+    } else {
+      this.pushStackLiteral(string);
+    }
+  },
+
+  emptyHash: function() {
+    this.pushStackLiteral('{}');
+
+    if (this.options.stringParams) {
+      this.register('hashTypes', '{}');
+      this.register('hashContexts', '{}');
+    }
+  },
+  pushHash: function() {
+    this.hash = {values: [], types: [], contexts: []};
+  },
+  popHash: function() {
+    var hash = this.hash;
+    this.hash = undefined;
+
+    if (this.options.stringParams) {
+      this.register('hashContexts', '{' + hash.contexts.join(',') + '}');
+      this.register('hashTypes', '{' + hash.types.join(',') + '}');
+    }
+    this.push('{\n    ' + hash.values.join(',\n    ') + '\n  }');
+  },
+
+  // [pushString]
+  //
+  // On stack, before: ...
+  // On stack, after: quotedString(string), ...
+  //
+  // Push a quoted version of `string` onto the stack
+  pushString: function(string) {
+    this.pushStackLiteral(this.quotedString(string));
+  },
+
+  // [push]
+  //
+  // On stack, before: ...
+  // On stack, after: expr, ...
+  //
+  // Push an expression onto the stack
+  push: function(expr) {
+    this.inlineStack.push(expr);
+    return expr;
+  },
+
+  // [pushLiteral]
+  //
+  // On stack, before: ...
+  // On stack, after: value, ...
+  //
+  // Pushes a value onto the stack. This operation prevents
+  // the compiler from creating a temporary variable to hold
+  // it.
+  pushLiteral: function(value) {
+    this.pushStackLiteral(value);
+  },
+
+  // [pushProgram]
+  //
+  // On stack, before: ...
+  // On stack, after: program(guid), ...
+  //
+  // Push a program expression onto the stack. This takes
+  // a compile-time guid and converts it into a runtime-accessible
+  // expression.
+  pushProgram: function(guid) {
+    if (guid != null) {
+      this.pushStackLiteral(this.programExpression(guid));
+    } else {
+      this.pushStackLiteral(null);
+    }
+  },
+
+  // [invokeHelper]
+  //
+  // On stack, before: hash, inverse, program, params..., ...
+  // On stack, after: result of helper invocation
+  //
+  // Pops off the helper's parameters, invokes the helper,
+  // and pushes the helper's return value onto the stack.
+  //
+  // If the helper is not found, `helperMissing` is called.
+  invokeHelper: function(paramSize, name) {
+    this.context.aliases.helperMissing = 'helpers.helperMissing';
+
+    var helper = this.lastHelper = this.setupHelper(paramSize, name, true);
+    var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
+
+    this.push(helper.name + ' || ' + nonHelper);
+    this.replaceStack(function(name) {
+      return name + ' ? ' + name + '.call(' +
+          helper.callParams + ") " + ": helperMissing.call(" +
+          helper.helperMissingParams + ")";
+    });
+  },
+
+  // [invokeKnownHelper]
+  //
+  // On stack, before: hash, inverse, program, params..., ...
+  // On stack, after: result of helper invocation
+  //
+  // This operation is used when the helper is known to exist,
+  // so a `helperMissing` fallback is not required.
+  invokeKnownHelper: function(paramSize, name) {
+    var helper = this.setupHelper(paramSize, name);
+    this.push(helper.name + ".call(" + helper.callParams + ")");
+  },
+
+  // [invokeAmbiguous]
+  //
+  // On stack, before: hash, inverse, program, params..., ...
+  // On stack, after: result of disambiguation
+  //
+  // This operation is used when an expression like `{{foo}}`
+  // is provided, but we don't know at compile-time whether it
+  // is a helper or a path.
+  //
+  // This operation emits more code than the other options,
+  // and can be avoided by passing the `knownHelpers` and
+  // `knownHelpersOnly` flags at compile-time.
+  invokeAmbiguous: function(name, helperCall) {
+    this.context.aliases.functionType = '"function"';
+
+    this.pushStackLiteral('{}');    // Hash value
+    var helper = this.setupHelper(0, name, helperCall);
+
+    var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
+
+    var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
+    var nextStack = this.nextStack();
+
+    this.source.push('if (' + nextStack + ' = ' + helperName + ') { ' + nextStack + ' = ' + nextStack + '.call(' + helper.callParams + '); }');
+    this.source.push('else { ' + nextStack + ' = ' + nonHelper + '; ' + nextStack + ' = typeof ' + nextStack + ' === functionType ? ' + nextStack + '.apply(depth0) : ' + nextStack + '; }');
+  },
+
+  // [invokePartial]
+  //
+  // On stack, before: context, ...
+  // On stack after: result of partial invocation
+  //
+  // This operation pops off a context, invokes a partial with that context,
+  // and pushes the result of the invocation back.
+  invokePartial: function(name) {
+    var params = [this.nameLookup('partials', name, 'partial'), "'" + name + "'", this.popStack(), "helpers", "partials"];
+
+    if (this.options.data) {
+      params.push("data");
+    }
+
+    this.context.aliases.self = "this";
+    this.push("self.invokePartial(" + params.join(", ") + ")");
+  },
+
+  // [assignToHash]
+  //
+  // On stack, before: value, hash, ...
+  // On stack, after: hash, ...
+  //
+  // Pops a value and hash off the stack, assigns `hash[key] = value`
+  // and pushes the hash back onto the stack.
+  assignToHash: function(key) {
+    var value = this.popStack(),
+        context,
+        type;
+
+    if (this.options.stringParams) {
+      type = this.popStack();
+      context = this.popStack();
+    }
+
+    var hash = this.hash;
+    if (context) {
+      hash.contexts.push("'" + key + "': " + context);
+    }
+    if (type) {
+      hash.types.push("'" + key + "': " + type);
+    }
+    hash.values.push("'" + key + "': (" + value + ")");
+  },
+
+  // HELPERS
+
+  compiler: JavaScriptCompiler,
+
+  compileChildren: function(environment, options) {
+    var children = environment.children, child, compiler;
+
+    for(var i=0, l=children.length; i<l; i++) {
+      child = children[i];
+      compiler = new this.compiler();
+
+      var index = this.matchExistingProgram(child);
+
+      if (index == null) {
+        this.context.programs.push('');     // Placeholder to prevent name conflicts for nested children
+        index = this.context.programs.length;
+        child.index = index;
+        child.name = 'program' + index;
+        this.context.programs[index] = compiler.compile(child, options, this.context);
+        this.context.environments[index] = child;
+      } else {
+        child.index = index;
+        child.name = 'program' + index;
+      }
+    }
+  },
+  matchExistingProgram: function(child) {
+    for (var i = 0, len = this.context.environments.length; i < len; i++) {
+      var environment = this.context.environments[i];
+      if (environment && environment.equals(child)) {
+        return i;
+      }
+    }
+  },
+
+  programExpression: function(guid) {
+    this.context.aliases.self = "this";
+
+    if(guid == null) {
+      return "self.noop";
+    }
+
+    var child = this.environment.children[guid],
+        depths = child.depths.list, depth;
+
+    var programParams = [child.index, child.name, "data"];
+
+    for(var i=0, l = depths.length; i<l; i++) {
+      depth = depths[i];
+
+      if(depth === 1) { programParams.push("depth0"); }
+      else { programParams.push("depth" + (depth - 1)); }
+    }
+
+    return (depths.length === 0 ? "self.program(" : "self.programWithDepth(") + programParams.join(", ") + ")";
+  },
+
+  register: function(name, val) {
+    this.useRegister(name);
+    this.source.push(name + " = " + val + ";");
+  },
+
+  useRegister: function(name) {
+    if(!this.registers[name]) {
+      this.registers[name] = true;
+      this.registers.list.push(name);
+    }
+  },
+
+  pushStackLiteral: function(item) {
+    return this.push(new Literal(item));
+  },
+
+  pushStack: function(item) {
+    this.flushInline();
+
+    var stack = this.incrStack();
+    if (item) {
+      this.source.push(stack + " = " + item + ";");
+    }
+    this.compileStack.push(stack);
+    return stack;
+  },
+
+  replaceStack: function(callback) {
+    var prefix = '',
+        inline = this.isInline(),
+        stack;
+
+    // If we are currently inline then we want to merge the inline statement into the
+    // replacement statement via ','
+    if (inline) {
+      var top = this.popStack(true);
+
+      if (top instanceof Literal) {
+        // Literals do not need to be inlined
+        stack = top.value;
+      } else {
+        // Get or create the current stack name for use by the inline
+        var name = this.stackSlot ? this.topStackName() : this.incrStack();
+
+        prefix = '(' + this.push(name) + ' = ' + top + '),';
+        stack = this.topStack();
+      }
+    } else {
+      stack = this.topStack();
+    }
+
+    var item = callback.call(this, stack);
+
+    if (inline) {
+      if (this.inlineStack.length || this.compileStack.length) {
+        this.popStack();
+      }
+      this.push('(' + prefix + item + ')');
+    } else {
+      // Prevent modification of the context depth variable. Through replaceStack
+      if (!/^stack/.test(stack)) {
+        stack = this.nextStack();
+      }
+
+      this.source.push(stack + " = (" + prefix + item + ");");
+    }
+    return stack;
+  },
+
+  nextStack: function() {
+    return this.pushStack();
+  },
+
+  incrStack: function() {
+    this.stackSlot++;
+    if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); }
+    return this.topStackName();
+  },
+  topStackName: function() {
+    return "stack" + this.stackSlot;
+  },
+  flushInline: function() {
+    var inlineStack = this.inlineStack;
+    if (inlineStack.length) {
+      this.inlineStack = [];
+      for (var i = 0, len = inlineStack.length; i < len; i++) {
+        var entry = inlineStack[i];
+        if (entry instanceof Literal) {
+          this.compileStack.push(entry);
+        } else {
+          this.pushStack(entry);
+        }
+      }
+    }
+  },
+  isInline: function() {
+    return this.inlineStack.length;
+  },
+
+  popStack: function(wrapped) {
+    var inline = this.isInline(),
+        item = (inline ? this.inlineStack : this.compileStack).pop();
+
+    if (!wrapped && (item instanceof Literal)) {
+      return item.value;
+    } else {
+      if (!inline) {
+        this.stackSlot--;
+      }
+      return item;
+    }
+  },
+
+  topStack: function(wrapped) {
+    var stack = (this.isInline() ? this.inlineStack : this.compileStack),
+        item = stack[stack.length - 1];
+
+    if (!wrapped && (item instanceof Literal)) {
+      return item.value;
+    } else {
+      return item;
+    }
+  },
+
+  quotedString: function(str) {
+    return '"' + str
+      .replace(/\\/g, '\\\\')
+      .replace(/"/g, '\\"')
+      .replace(/\n/g, '\\n')
+      .replace(/\r/g, '\\r')
+      .replace(/\u2028/g, '\\u2028')   // Per Ecma-262 7.3 + 7.8.4
+      .replace(/\u2029/g, '\\u2029') + '"';
+  },
+
+  setupHelper: function(paramSize, name, missingParams) {
+    var params = [];
+    this.setupParams(paramSize, params, missingParams);
+    var foundHelper = this.nameLookup('helpers', name, 'helper');
+
+    return {
+      params: params,
+      name: foundHelper,
+      callParams: ["depth0"].concat(params).join(", "),
+      helperMissingParams: missingParams && ["depth0", this.quotedString(name)].concat(params).join(", ")
+    };
+  },
+
+  // the params and contexts arguments are passed in arrays
+  // to fill in
+  setupParams: function(paramSize, params, useRegister) {
+    var options = [], contexts = [], types = [], param, inverse, program;
+
+    options.push("hash:" + this.popStack());
+
+    inverse = this.popStack();
+    program = this.popStack();
+
+    // Avoid setting fn and inverse if neither are set. This allows
+    // helpers to do a check for `if (options.fn)`
+    if (program || inverse) {
+      if (!program) {
+        this.context.aliases.self = "this";
+        program = "self.noop";
+      }
+
+      if (!inverse) {
+       this.context.aliases.self = "this";
+        inverse = "self.noop";
+      }
+
+      options.push("inverse:" + inverse);
+      options.push("fn:" + program);
+    }
+
+    for(var i=0; i<paramSize; i++) {
+      param = this.popStack();
+      params.push(param);
+
+      if(this.options.stringParams) {
+        types.push(this.popStack());
+        contexts.push(this.popStack());
+      }
+    }
+
+    if (this.options.stringParams) {
+      options.push("contexts:[" + contexts.join(",") + "]");
+      options.push("types:[" + types.join(",") + "]");
+      options.push("hashContexts:hashContexts");
+      options.push("hashTypes:hashTypes");
+    }
+
+    if(this.options.data) {
+      options.push("data:data");
+    }
+
+    options = "{" + options.join(",") + "}";
+    if (useRegister) {
+      this.register('options', options);
+      params.push('options');
+    } else {
+      params.push(options);
+    }
+    return params.join(", ");
+  }
+};
+
+var reservedWords = (
+  "break else new var" +
+  " case finally return void" +
+  " catch for switch while" +
+  " continue function this with" +
+  " default if throw" +
+  " delete in try" +
+  " do instanceof typeof" +
+  " abstract enum int short" +
+  " boolean export interface static" +
+  " byte extends long super" +
+  " char final native synchronized" +
+  " class float package throws" +
+  " const goto private transient" +
+  " debugger implements protected volatile" +
+  " double import public let yield"
+).split(" ");
+
+var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
+
+for(var i=0, l=reservedWords.length; i<l; i++) {
+  compilerWords[reservedWords[i]] = true;
+}
+
+JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {
+  if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) {
+    return true;
+  }
+  return false;
+};
+
+Handlebars.precompile = function(input, options) {
+  if (input == null || (typeof input !== 'string' && input.constructor !== Handlebars.AST.ProgramNode)) {
+    throw new Handlebars.Exception("You must pass a string or Handlebars AST to Handlebars.precompile. You passed " + input);
+  }
+
+  options = options || {};
+  if (!('data' in options)) {
+    options.data = true;
+  }
+  var ast = Handlebars.parse(input);
+  var environment = new Compiler().compile(ast, options);
+  return new JavaScriptCompiler().compile(environment, options);
+};
+
+Handlebars.compile = function(input, options) {
+  if (input == null || (typeof input !== 'string' && input.constructor !== Handlebars.AST.ProgramNode)) {
+    throw new Handlebars.Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input);
+  }
+
+  options = options || {};
+  if (!('data' in options)) {
+    options.data = true;
+  }
+  var compiled;
+  function compile() {
+    var ast = Handlebars.parse(input);
+    var environment = new Compiler().compile(ast, options);
+    var templateSpec = new JavaScriptCompiler().compile(environment, options, undefined, true);
+    return Handlebars.template(templateSpec);
+  }
+
+  // Template is only compiled on first use and cached after that point.
+  return function(context, options) {
+    if (!compiled) {
+      compiled = compile();
+    }
+    return compiled.call(this, context, options);
+  };
+};
+
+;
+// lib/handlebars/runtime.js
+
+Handlebars.VM = {
+  template: function(templateSpec) {
+    // Just add water
+    var container = {
+      escapeExpression: Handlebars.Utils.escapeExpression,
+      invokePartial: Handlebars.VM.invokePartial,
+      programs: [],
+      program: function(i, fn, data) {
+        var programWrapper = this.programs[i];
+        if(data) {
+          programWrapper = Handlebars.VM.program(i, fn, data);
+        } else if (!programWrapper) {
+          programWrapper = this.programs[i] = Handlebars.VM.program(i, fn);
+        }
+        return programWrapper;
+      },
+      merge: function(param, common) {
+        var ret = param || common;
+
+        if (param && common) {
+          ret = {};
+          Handlebars.Utils.extend(ret, common);
+          Handlebars.Utils.extend(ret, param);
+        }
+        return ret;
+      },
+      programWithDepth: Handlebars.VM.programWithDepth,
+      noop: Handlebars.VM.noop,
+      compilerInfo: null
+    };
+
+    return function(context, options) {
+      options = options || {};
+      var result = templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data);
+
+      var compilerInfo = container.compilerInfo || [],
+          compilerRevision = compilerInfo[0] || 1,
+          currentRevision = Handlebars.COMPILER_REVISION;
+
+      if (compilerRevision !== currentRevision) {
+        if (compilerRevision < currentRevision) {
+          var runtimeVersions = Handlebars.REVISION_CHANGES[currentRevision],
+              compilerVersions = Handlebars.REVISION_CHANGES[compilerRevision];
+          throw "Template was precompiled with an older version of Handlebars than the current runtime. "+
+                "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+").";
+        } else {
+          // Use the embedded version info since the runtime doesn't know about this revision yet
+          throw "Template was precompiled with a newer version of Handlebars than the current runtime. "+
+                "Please update your runtime to a newer version ("+compilerInfo[1]+").";
+        }
+      }
+
+      return result;
+    };
+  },
+
+  programWithDepth: function(i, fn, data /*, $depth */) {
+    var args = Array.prototype.slice.call(arguments, 3);
+
+    var program = function(context, options) {
+      options = options || {};
+
+      return fn.apply(this, [context, options.data || data].concat(args));
+    };
+    program.program = i;
+    program.depth = args.length;
+    return program;
+  },
+  program: function(i, fn, data) {
+    var program = function(context, options) {
+      options = options || {};
+
+      return fn(context, options.data || data);
+    };
+    program.program = i;
+    program.depth = 0;
+    return program;
+  },
+  noop: function() { return ""; },
+  invokePartial: function(partial, name, context, helpers, partials, data) {
+    var options = { helpers: helpers, partials: partials, data: data };
+
+    if(partial === undefined) {
+      throw new Handlebars.Exception("The partial " + name + " could not be found");
+    } else if(partial instanceof Function) {
+      return partial(context, options);
+    } else if (!Handlebars.compile) {
+      throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
+    } else {
+      partials[name] = Handlebars.compile(partial, {data: data !== undefined});
+      return partials[name](context, options);
+    }
+  }
+};
+
+Handlebars.template = Handlebars.VM.template;
+;
+// lib/handlebars/browser-suffix.js
+})(Handlebars);
+;
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/highlight.7.3.pack.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/highlight.7.3.pack.js
new file mode 100644 (file)
index 0000000..9a95a75
--- /dev/null
@@ -0,0 +1 @@
+var hljs=new function(){function l(o){return o.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+q.parentNode.className).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o<p.length;o++){if(e[p[o]]||p[o]=="no-highlight"){return p[o]}}}function c(q){var o=[];(function p(r,s){for(var t=r.firstChild;t;t=t.nextSibling){if(t.nodeType==3){s+=t.nodeValue.length}else{if(t.nodeName=="BR"){s+=1}else{if(t.nodeType==1){o.push({event:"start",offset:s,node:t});s=p(t,s);o.push({event:"stop",offset:s,node:t})}}}}return s})(q,0);return o}function j(x,v,w){var p=0;var y="";var r=[];function t(){if(x.length&&v.length){if(x[0].offset!=v[0].offset){return(x[0].offset<v[0].offset)?x:v}else{return v[0].event=="start"?x:v}}else{return x.length?x:v}}function s(A){function z(B){return" "+B.nodeName+'="'+l(B.value)+'"'}return"<"+A.nodeName+Array.prototype.map.call(A.attributes,z).join("")+">"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("</"+o.nodeName.toLowerCase()+">")}while(o!=u.node);r.splice(q,1);while(q<r.length){y+=s(r[q]);q++}}}}return y+l(w.substr(p))}function f(q){function o(s,r){return RegExp(s,"m"+(q.cI?"i":"")+(r?"g":""))}function p(y,w){if(y.compiled){return}y.compiled=true;var s=[];if(y.k){var r={};function z(A,t){t.split(" ").forEach(function(B){var C=B.split("|");r[C[0]]=[A,C[1]?Number(C[1]):1];s.push(C[0])})}y.lR=o(y.l||hljs.IR,true);if(typeof y.k=="string"){z("keyword",y.k)}else{for(var x in y.k){if(!y.k.hasOwnProperty(x)){continue}z(x,y.k[x])}}y.k=r}if(w){if(y.bWK){y.b="\\b("+s.join("|")+")\\s"}y.bR=o(y.b?y.b:"\\B|\\b");if(!y.e&&!y.eW){y.e="\\B|\\b"}if(y.e){y.eR=o(y.e)}y.tE=y.e||"";if(y.eW&&w.tE){y.tE+=(y.e?"|":"")+w.tE}}if(y.i){y.iR=o(y.i)}if(y.r===undefined){y.r=1}if(!y.c){y.c=[]}for(var v=0;v<y.c.length;v++){if(y.c[v]=="self"){y.c[v]=y}p(y.c[v],y)}if(y.starts){p(y.starts,w)}var u=[];for(var v=0;v<y.c.length;v++){u.push(y.c[v].b)}if(y.tE){u.push(y.tE)}if(y.i){u.push(y.i)}y.t=u.length?o(u.join("|"),true):{exec:function(t){return null}}}p(q)}function d(D,E){function o(r,M){for(var L=0;L<M.c.length;L++){var K=M.c[L].bR.exec(r);if(K&&K.index==0){return M.c[L]}}}function s(K,r){if(K.e&&K.eR.test(r)){return K}if(K.eW){return s(K.parent,r)}}function t(r,K){return K.i&&K.iR.test(r)}function y(L,r){var K=F.cI?r[0].toLowerCase():r[0];return L.k.hasOwnProperty(K)&&L.k[K]}function G(){var K=l(w);if(!A.k){return K}var r="";var N=0;A.lR.lastIndex=0;var L=A.lR.exec(K);while(L){r+=K.substr(N,L.index-N);var M=y(A,L);if(M){v+=M[1];r+='<span class="'+M[0]+'">'+L[0]+"</span>"}else{r+=L[0]}N=A.lR.lastIndex;L=A.lR.exec(K)}return r+K.substr(N)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return'<span class="'+r.language+'">'+r.value+"</span>"}function J(){return A.sL!==undefined?z():G()}function I(L,r){var K=L.cN?'<span class="'+L.cN+'">':"";if(L.rB){x+=K;w=""}else{if(L.eB){x+=l(r)+K;w=""}else{x+=K;w=r}}A=Object.create(L,{parent:{value:A}});B+=L.r}function C(K,r){w+=K;if(r===undefined){x+=J();return 0}var L=o(r,A);if(L){x+=J();I(L,r);return L.rB?0:r.length}var M=s(A,r);if(M){if(!(M.rE||M.eE)){w+=r}x+=J();do{if(A.cN){x+="</span>"}A=A.parent}while(A!=M.parent);if(M.eE){x+=l(r)}w="";if(M.starts){I(M.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw"Illegal"}w+=r;return r.length||1}var F=e[D];f(F);var A=F;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(E);if(!u){break}q=C(E.substr(p,u.index-p),u[0]);p=u.index+q}C(E.substr(p));return{r:B,keyword_count:v,value:x,language:D}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:l(E)}}else{throw H}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"<br>")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"title",b:"[^ />]+"},b]}]}}(hljs);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs);
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery-1.8.0.min.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery-1.8.0.min.js
new file mode 100644 (file)
index 0000000..f121291
--- /dev/null
@@ -0,0 +1,2 @@
+/*! jQuery v@1.8.0 jquery.com | jquery.org/license */\r
+(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bX(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bV.length;while(e--){b=bV[e]+c;if(b in a)return b}return d}function bY(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function bZ(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bY(c)&&(e[f]=p._data(c,"olddisplay",cb(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b$(a,b,c){var d=bO.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function b_(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bU[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bU[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bU[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bU[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bU[e]+"Width"))||0));return f}function ca(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bP.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+b_(a,b,c||(f?"border":"content"),e)+"px"}function cb(a){if(bR[a])return bR[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cz(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cu;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cz(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cz(a,c,d,e,"*",g)),h}function cA(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cB(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cC(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cK(){try{return new a.XMLHttpRequest}catch(b){}}function cL(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cT(){return setTimeout(function(){cM=b},0),cM=p.now()}function cU(a,b){p.each(b,function(b,c){var d=(cS[b]||[]).concat(cS["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cV(a,b,c){var d,e=0,f=0,g=cR.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cM||cT(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cM||cT(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cW(k,j.opts.specialEasing);for(;e<g;e++){d=cR[e].call(j,a,k,j.opts);if(d)return d}return cU(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cW(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cX(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bY(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cb(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cO.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cY(a,b,c,d,e){return new cY.prototype.init(a,b,c,d,e)}function cZ(a,b){var c,d={height:a},e=0;for(;e<4;e+=2-b)c=bU[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function c_(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=r.test(" ")?/^[\s\xA0]+|[\s\xA0]+$/g:/^\s+|\s+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":a.toString().replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||f.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete"||e.readyState!=="loading"&&e.addEventListener)setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){p.isFunction(c)&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")===0&&(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)(d=p._data(g[h],a+"queueHooks"))&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)~f.indexOf(" "+b[g]+" ")||(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,k,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=[].slice.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click")){g=p(this),g.context=this;for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){i={},k=[],g[0]=f;for(d=0;d<q;d++)l=o[d],m=l.selector,i[m]===b&&(i[m]=g.is(m)),i[m]&&k.push(l);k.length&&u.push({elem:f,matches:k})}}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){j=u[d],c.currentTarget=j.elem;for(e=0;e<j.matches.length&&!c.isImmediatePropagationStopped();e++){l=j.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,h=((p.event.special[l.origType]||{}).handle||l.handler).apply(j.elem,r),h!==b&&(c.result=h,h===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{ready:{setup:p.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)Z(a,b[e],c,d)}function be(a,b,c,d,e,f){var g,h=$.setFilters[b.toLowerCase()];return h||Z.error(b),(a||!(g=e))&&bd(a||"*",d,g=[],e),g.length>0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;a<c;a++)arguments[a]===b&&(g[a]=b)};for(;p<q;p++){s.exec(""),a=f[p],j=[],i=0,k=e;while(g=s.exec(a)){n=s.lastIndex=g.index+g[0].length;if(n>i){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="<a name='"+q+"'></a><div name='"+q+"'></div>",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},odd:function(a,b,c){var d=[],e=c?0:1,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},lt:function(a,b,c){return c?a.slice(+b):a.slice(0,+b)},gt:function(a,b,c){return c?a.slice(0,+b+1):a.slice(+b+1)},eq:function(a,b,c){var d=a.splice(+b,1);return c?a:d}}};$.setFilters.nth=$.setFilters.eq,$.filters=$.pseudos,X||($.attrHandle={href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}}),V&&($.order.push("NAME"),$.find.NAME=function(a,b){if(typeof b.getElementsByName!==j)return b.getElementsByName(a)}),Y&&($.order.splice(1,0,"CLASS"),$.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==j&&!c)return b.getElementsByClassName(a)});try{n.call(i.childNodes,0)[0].nodeType}catch(_){n=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}var ba=Z.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},bb=Z.contains=i.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc=Z.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=bc(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=bc(b);return c};Z.attr=function(a,b){var c,d=ba(a);return d||(b=b.toLowerCase()),$.attrHandle[b]?$.attrHandle[b](a):U||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},Z.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},[0,0].sort(function(){return l=0}),i.compareDocumentPosition?e=function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:(e=function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],g=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return f(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)g.unshift(j),j=j.parentNode;c=e.length,d=g.length;for(var l=0;l<c&&l<d;l++)if(e[l]!==g[l])return f(e[l],g[l]);return l===c?f(a,g[l],-1):f(e[l],b,1)},f=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),Z.uniqueSort=function(a){var b,c=1;if(e){k=l,a.sort(e);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1)}return a};var bl=Z.compile=function(a,b,c){var d,e,f,g=O[a];if(g&&g.context===b)return g;e=bg(a,b,c);for(f=0;d=e[f];f++)e[f]=bj(d,b,c);return g=O[a]=bk(e),g.context=b,g.runs=g.dirruns=0,P.push(a),P.length>$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j<k;j++){p=$.order[j];if(s=L[p].exec(m)){h=$.find[p]((s[1]||"").replace(K,""),q,g);if(h==null)continue;m===r&&(a=a.slice(0,a.length-r.length)+m.replace(L[p],""),a||o.apply(e,n.call(h,0)));break}}}if(a){i=bl(a,b,g),d=i.dirruns++,h==null&&(h=$.find.TAG("*",G.test(a)&&b.parentNode||b));for(j=0;l=h[j];j++)c=i.runs++,i(l,b)&&e.push(l)}return e};h.querySelectorAll&&function(){var a,b=bm,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[],f=[":active"],g=i.matchesSelector||i.mozMatchesSelector||i.webkitMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;T(function(a){a.innerHTML="<select><option selected></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=(c[0]||c).ownerDocument||c[0]||c,typeof c.createDocumentFragment=="undefined"&&(c=e),a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cS[c]=cS[c]||[],cS[c].unshift(b)},prefilter:function(a,b){b?cR.unshift(a):cR.push(a)}}),p.Tween=cY,cY.prototype={constructor:cY,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cY.propHooks[this.prop];return a&&a.get?a.get(this):cY.propHooks._default.get(this)},run:function(a){var b,c=cY.propHooks[this.prop];return this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration),this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cY.propHooks._default.set(this),this}},cY.prototype.init.prototype=cY.prototype,cY.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cY.propHooks.scrollTop=cY.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(cZ(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bY).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cV(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cQ.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:cZ("show"),slideUp:cZ("hide"),slideToggle:cZ("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cY.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cN&&(cN=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cN),cN=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c$=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j,k,l,m=this[0],n=m&&m.ownerDocument;if(!n)return;return(e=n.body)===m?p.offset.bodyOffset(m):(d=n.documentElement,p.contains(d,m)?(c=m.getBoundingClientRect(),f=c_(n),g=d.clientTop||e.clientTop||0,h=d.clientLeft||e.clientLeft||0,i=f.pageYOffset||d.scrollTop,j=f.pageXOffset||d.scrollLeft,k=c.top+i-g,l=c.left+j-h,{top:k,left:l}):{top:0,left:0})},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window);
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.ba-bbq.min.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.ba-bbq.min.js
new file mode 100644 (file)
index 0000000..bcbf248
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
+ * http://benalman.com/projects/jquery-bbq-plugin/
+ * 
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this);
+/*
+ * jQuery hashchange event - v1.2 - 2/11/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ * 
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.slideto.min.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.slideto.min.js
new file mode 100644 (file)
index 0000000..ba32cff
--- /dev/null
@@ -0,0 +1 @@
+(function(b){b.fn.slideto=function(a){a=b.extend({slide_duration:"slow",highlight_duration:3E3,highlight:true,highlight_color:"#FFFF99"},a);return this.each(function(){obj=b(this);b("body").animate({scrollTop:obj.offset().top},a.slide_duration,function(){a.highlight&&b.ui.version&&obj.effect("highlight",{color:a.highlight_color},a.highlight_duration)})})}})(jQuery);
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.wiggle.min.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/jquery.wiggle.min.js
new file mode 100644 (file)
index 0000000..2adb0d6
--- /dev/null
@@ -0,0 +1,8 @@
+/*
+jQuery Wiggle
+Author: WonderGroup, Jordan Thomas
+URL: http://labs.wondergroup.com/demos/mini-ui/index.html
+License: MIT (http://en.wikipedia.org/wiki/MIT_License)
+*/
+jQuery.fn.wiggle=function(o){var d={speed:50,wiggles:3,travel:5,callback:null};var o=jQuery.extend(d,o);return this.each(function(){var cache=this;var wrap=jQuery(this).wrap('<div class="wiggle-wrap"></div>').css("position","relative");var calls=0;for(i=1;i<=o.wiggles;i++){jQuery(this).animate({left:"-="+o.travel},o.speed).animate({left:"+="+o.travel*2},o.speed*2).animate({left:"-="+o.travel},o.speed,function(){calls++;if(jQuery(cache).parent().hasClass('wiggle-wrap')){jQuery(cache).parent().replaceWith(cache);}
+if(calls==o.wiggles&&jQuery.isFunction(o.callback)){o.callback();}});}});};
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/shred.bundle.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/shred.bundle.js
new file mode 100644 (file)
index 0000000..74d0816
--- /dev/null
@@ -0,0 +1,2765 @@
+var require = function (file, cwd) {
+    var resolved = require.resolve(file, cwd || '/');
+    var mod = require.modules[resolved];
+    if (!mod) throw new Error(
+        'Failed to resolve module ' + file + ', tried ' + resolved
+    );
+    var res = mod._cached ? mod._cached : mod();
+    return res;
+}
+
+require.paths = [];
+require.modules = {};
+require.extensions = [".js",".coffee"];
+
+require._core = {
+    'assert': true,
+    'events': true,
+    'fs': true,
+    'path': true,
+    'vm': true
+};
+
+require.resolve = (function () {
+    return function (x, cwd) {
+        if (!cwd) cwd = '/';
+        
+        if (require._core[x]) return x;
+        var path = require.modules.path();
+        var y = cwd || '.';
+        
+        if (x.match(/^(?:\.\.?\/|\/)/)) {
+            var m = loadAsFileSync(path.resolve(y, x))
+                || loadAsDirectorySync(path.resolve(y, x));
+            if (m) return m;
+        }
+        
+        var n = loadNodeModulesSync(x, y);
+        if (n) return n;
+        
+        throw new Error("Cannot find module '" + x + "'");
+        
+        function loadAsFileSync (x) {
+            if (require.modules[x]) {
+                return x;
+            }
+            
+            for (var i = 0; i < require.extensions.length; i++) {
+                var ext = require.extensions[i];
+                if (require.modules[x + ext]) return x + ext;
+            }
+        }
+        
+        function loadAsDirectorySync (x) {
+            x = x.replace(/\/+$/, '');
+            var pkgfile = x + '/package.json';
+            if (require.modules[pkgfile]) {
+                var pkg = require.modules[pkgfile]();
+                var b = pkg.browserify;
+                if (typeof b === 'object' && b.main) {
+                    var m = loadAsFileSync(path.resolve(x, b.main));
+                    if (m) return m;
+                }
+                else if (typeof b === 'string') {
+                    var m = loadAsFileSync(path.resolve(x, b));
+                    if (m) return m;
+                }
+                else if (pkg.main) {
+                    var m = loadAsFileSync(path.resolve(x, pkg.main));
+                    if (m) return m;
+                }
+            }
+            
+            return loadAsFileSync(x + '/index');
+        }
+        
+        function loadNodeModulesSync (x, start) {
+            var dirs = nodeModulesPathsSync(start);
+            for (var i = 0; i < dirs.length; i++) {
+                var dir = dirs[i];
+                var m = loadAsFileSync(dir + '/' + x);
+                if (m) return m;
+                var n = loadAsDirectorySync(dir + '/' + x);
+                if (n) return n;
+            }
+            
+            var m = loadAsFileSync(x);
+            if (m) return m;
+        }
+        
+        function nodeModulesPathsSync (start) {
+            var parts;
+            if (start === '/') parts = [ '' ];
+            else parts = path.normalize(start).split('/');
+            
+            var dirs = [];
+            for (var i = parts.length - 1; i >= 0; i--) {
+                if (parts[i] === 'node_modules') continue;
+                var dir = parts.slice(0, i + 1).join('/') + '/node_modules';
+                dirs.push(dir);
+            }
+            
+            return dirs;
+        }
+    };
+})();
+
+require.alias = function (from, to) {
+    var path = require.modules.path();
+    var res = null;
+    try {
+        res = require.resolve(from + '/package.json', '/');
+    }
+    catch (err) {
+        res = require.resolve(from, '/');
+    }
+    var basedir = path.dirname(res);
+    
+    var keys = (Object.keys || function (obj) {
+        var res = [];
+        for (var key in obj) res.push(key)
+        return res;
+    })(require.modules);
+    
+    for (var i = 0; i < keys.length; i++) {
+        var key = keys[i];
+        if (key.slice(0, basedir.length + 1) === basedir + '/') {
+            var f = key.slice(basedir.length);
+            require.modules[to + f] = require.modules[basedir + f];
+        }
+        else if (key === basedir) {
+            require.modules[to] = require.modules[basedir];
+        }
+    }
+};
+
+require.define = function (filename, fn) {
+    var dirname = require._core[filename]
+        ? ''
+        : require.modules.path().dirname(filename)
+    ;
+    
+    var require_ = function (file) {
+        return require(file, dirname)
+    };
+    require_.resolve = function (name) {
+        return require.resolve(name, dirname);
+    };
+    require_.modules = require.modules;
+    require_.define = require.define;
+    var module_ = { exports : {} };
+    
+    require.modules[filename] = function () {
+        require.modules[filename]._cached = module_.exports;
+        fn.call(
+            module_.exports,
+            require_,
+            module_,
+            module_.exports,
+            dirname,
+            filename
+        );
+        require.modules[filename]._cached = module_.exports;
+        return module_.exports;
+    };
+};
+
+if (typeof process === 'undefined') process = {};
+
+if (!process.nextTick) process.nextTick = (function () {
+    var queue = [];
+    var canPost = typeof window !== 'undefined'
+        && window.postMessage && window.addEventListener
+    ;
+    
+    if (canPost) {
+        window.addEventListener('message', function (ev) {
+            if (ev.source === window && ev.data === 'browserify-tick') {
+                ev.stopPropagation();
+                if (queue.length > 0) {
+                    var fn = queue.shift();
+                    fn();
+                }
+            }
+        }, true);
+    }
+    
+    return function (fn) {
+        if (canPost) {
+            queue.push(fn);
+            window.postMessage('browserify-tick', '*');
+        }
+        else setTimeout(fn, 0);
+    };
+})();
+
+if (!process.title) process.title = 'browser';
+
+if (!process.binding) process.binding = function (name) {
+    if (name === 'evals') return require('vm')
+    else throw new Error('No such module')
+};
+
+if (!process.cwd) process.cwd = function () { return '.' };
+
+require.define("path", function (require, module, exports, __dirname, __filename) {
+    function filter (xs, fn) {
+    var res = [];
+    for (var i = 0; i < xs.length; i++) {
+        if (fn(xs[i], i, xs)) res.push(xs[i]);
+    }
+    return res;
+}
+
+// resolves . and .. elements in a path array with directory names there
+// must be no slashes, empty elements, or device names (c:\) in the array
+// (so also no leading and trailing slashes - it does not distinguish
+// relative and absolute paths)
+function normalizeArray(parts, allowAboveRoot) {
+  // if the path tries to go above the root, `up` ends up > 0
+  var up = 0;
+  for (var i = parts.length; i >= 0; i--) {
+    var last = parts[i];
+    if (last == '.') {
+      parts.splice(i, 1);
+    } else if (last === '..') {
+      parts.splice(i, 1);
+      up++;
+    } else if (up) {
+      parts.splice(i, 1);
+      up--;
+    }
+  }
+
+  // if the path is allowed to go above the root, restore leading ..s
+  if (allowAboveRoot) {
+    for (; up--; up) {
+      parts.unshift('..');
+    }
+  }
+
+  return parts;
+}
+
+// Regex to split a filename into [*, dir, basename, ext]
+// posix version
+var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/;
+
+// path.resolve([from ...], to)
+// posix version
+exports.resolve = function() {
+var resolvedPath = '',
+    resolvedAbsolute = false;
+
+for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) {
+  var path = (i >= 0)
+      ? arguments[i]
+      : process.cwd();
+
+  // Skip empty and invalid entries
+  if (typeof path !== 'string' || !path) {
+    continue;
+  }
+
+  resolvedPath = path + '/' + resolvedPath;
+  resolvedAbsolute = path.charAt(0) === '/';
+}
+
+// At this point the path should be resolved to a full absolute path, but
+// handle relative paths to be safe (might happen when process.cwd() fails)
+
+// Normalize the path
+resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
+    return !!p;
+  }), !resolvedAbsolute).join('/');
+
+  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
+};
+
+// path.normalize(path)
+// posix version
+exports.normalize = function(path) {
+var isAbsolute = path.charAt(0) === '/',
+    trailingSlash = path.slice(-1) === '/';
+
+// Normalize the path
+path = normalizeArray(filter(path.split('/'), function(p) {
+    return !!p;
+  }), !isAbsolute).join('/');
+
+  if (!path && !isAbsolute) {
+    path = '.';
+  }
+  if (path && trailingSlash) {
+    path += '/';
+  }
+  
+  return (isAbsolute ? '/' : '') + path;
+};
+
+
+// posix version
+exports.join = function() {
+  var paths = Array.prototype.slice.call(arguments, 0);
+  return exports.normalize(filter(paths, function(p, index) {
+    return p && typeof p === 'string';
+  }).join('/'));
+};
+
+
+exports.dirname = function(path) {
+  var dir = splitPathRe.exec(path)[1] || '';
+  var isWindows = false;
+  if (!dir) {
+    // No dirname
+    return '.';
+  } else if (dir.length === 1 ||
+      (isWindows && dir.length <= 3 && dir.charAt(1) === ':')) {
+    // It is just a slash or a drive letter with a slash
+    return dir;
+  } else {
+    // It is a full dirname, strip trailing slash
+    return dir.substring(0, dir.length - 1);
+  }
+};
+
+
+exports.basename = function(path, ext) {
+  var f = splitPathRe.exec(path)[2] || '';
+  // TODO: make this comparison case-insensitive on windows?
+  if (ext && f.substr(-1 * ext.length) === ext) {
+    f = f.substr(0, f.length - ext.length);
+  }
+  return f;
+};
+
+
+exports.extname = function(path) {
+  return splitPathRe.exec(path)[3] || '';
+};
+
+});
+
+require.define("/shred.js", function (require, module, exports, __dirname, __filename) {
+    // Shred is an HTTP client library intended to simplify the use of Node's
+// built-in HTTP library. In particular, we wanted to make it easier to interact
+// with HTTP-based APIs.
+// 
+// See the [examples](./examples.html) for more details.
+
+// Ax is a nice logging library we wrote. You can use any logger, providing it
+// has `info`, `warn`, `debug`, and `error` methods that take a string.
+var Ax = require("ax")
+  , CookieJarLib = require( "cookiejar" )
+  , CookieJar = CookieJarLib.CookieJar
+;
+
+// Shred takes some options, including a logger and request defaults.
+
+var Shred = function(options) {
+  options = (options||{});
+  this.agent = options.agent;
+  this.defaults = options.defaults||{};
+  this.log = options.logger||(new Ax({ level: "info" }));
+  this._sharedCookieJar = new CookieJar();
+  this.logCurl = options.logCurl || false;
+};
+
+// Most of the real work is done in the request and reponse classes.
+Shred.Request = require("./shred/request");
+Shred.Response = require("./shred/response");
+
+// The `request` method kicks off a new request, instantiating a new `Request`
+// object and passing along whatever default options we were given.
+
+Shred.prototype = {
+  request: function(options) {
+    options.logger = this.log;
+    options.logCurl = options.logCurl || this.logCurl;
+    options.cookieJar = ( 'cookieJar' in options ) ? options.cookieJar : this._sharedCookieJar; // let them set cookieJar = null
+    options.agent = options.agent || this.agent;
+    // fill in default options
+    for (var key in this.defaults) {
+      if (this.defaults.hasOwnProperty(key) && !options[key]) {
+        options[key] = this.defaults[key]
+      }
+    }
+    return new Shred.Request(options);
+  }
+};
+
+// Define a bunch of convenience methods so that you don't have to include
+// a `method` property in your request options.
+
+"get put post delete".split(" ").forEach(function(method) {
+  Shred.prototype[method] = function(options) {
+    options.method = method;
+    return this.request(options);
+  };
+});
+
+
+module.exports = Shred;
+
+});
+
+require.define("/node_modules/ax/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {"main":"./lib/ax.js"}
+});
+
+require.define("/node_modules/ax/lib/ax.js", function (require, module, exports, __dirname, __filename) {
+    var inspect = require("util").inspect
+  , fs = require("fs")
+;
+
+
+// this is a quick-and-dirty logger. there are other nicer loggers out there
+// but the ones i found were also somewhat involved. this one has a Ruby
+// logger type interface
+//
+// we can easily replace this, provide the info, debug, etc. methods are the
+// same. or, we can change Haiku to use a more standard node.js interface
+
+var format = function(level,message) {
+  var debug = (level=="debug"||level=="error");
+  if (!message) { return message.toString(); }
+  if (typeof(message) == "object") {
+    if (message instanceof Error && debug) {
+      return message.stack;
+    } else {
+      return inspect(message);
+    }
+  } else {
+    return message.toString();
+  }
+};
+
+var noOp = function(message) { return this; }
+var makeLogger = function(level,fn) {
+  return function(message) { 
+    this.stream.write(this.format(level, message)+"\n");
+    return this;
+  }
+};
+
+var Logger = function(options) {
+  var logger = this;
+  var options = options||{};
+
+  // Default options
+  options.level = options.level || "info";
+  options.timestamp = options.timestamp || true;
+  options.prefix = options.prefix || "";
+  logger.options = options;
+
+  // Allows a prefix to be added to the message.
+  //
+  //    var logger = new Ax({ module: 'Haiku' })
+  //    logger.warn('this is going to be awesome!');
+  //    //=> Haiku: this is going to be awesome!
+  //
+  if (logger.options.module){
+    logger.options.prefix = logger.options.module;
+  }
+
+  // Write to stderr or a file
+  if (logger.options.file){
+    logger.stream = fs.createWriteStream(logger.options.file, {"flags": "a"});
+  } else {
+      if(process.title === "node")
+    logger.stream = process.stderr;
+      else if(process.title === "browser")
+    logger.stream = function () {
+      // Work around weird console context issue: http://code.google.com/p/chromium/issues/detail?id=48662
+      return console[logger.options.level].apply(console, arguments);
+    };
+  }
+
+  switch(logger.options.level){
+    case 'debug':
+      ['debug', 'info', 'warn'].forEach(function (level) {
+        logger[level] = Logger.writer(level);
+      });
+    case 'info':
+      ['info', 'warn'].forEach(function (level) {
+        logger[level] = Logger.writer(level);
+      });
+    case 'warn':
+      logger.warn = Logger.writer('warn');
+  }
+}
+
+// Used to define logger methods
+Logger.writer = function(level){
+  return function(message){
+    var logger = this;
+
+    if(process.title === "node")
+  logger.stream.write(logger.format(level, message) + '\n');
+    else if(process.title === "browser")
+  logger.stream(logger.format(level, message) + '\n');
+
+  };
+}
+
+
+Logger.prototype = {
+  info: function(){},
+  debug: function(){},
+  warn: function(){},
+  error: Logger.writer('error'),
+  format: function(level, message){
+    if (! message) return '';
+
+    var logger = this
+      , prefix = logger.options.prefix
+      , timestamp = logger.options.timestamp ? " " + (new Date().toISOString()) : ""
+    ;
+
+    return (prefix + timestamp + ": " + message);
+  }
+};
+
+module.exports = Logger;
+
+});
+
+require.define("util", function (require, module, exports, __dirname, __filename) {
+    // todo
+
+});
+
+require.define("fs", function (require, module, exports, __dirname, __filename) {
+    // nothing to see here... no file methods for the browser
+
+});
+
+require.define("/node_modules/cookiejar/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {"main":"cookiejar.js"}
+});
+
+require.define("/node_modules/cookiejar/cookiejar.js", function (require, module, exports, __dirname, __filename) {
+    exports.CookieAccessInfo=CookieAccessInfo=function CookieAccessInfo(domain,path,secure,script) {
+    if(this instanceof CookieAccessInfo) {
+      this.domain=domain||undefined;
+      this.path=path||"/";
+      this.secure=!!secure;
+      this.script=!!script;
+      return this;
+    }
+    else {
+        return new CookieAccessInfo(domain,path,secure,script)    
+    }
+}
+
+exports.Cookie=Cookie=function Cookie(cookiestr) {
+  if(cookiestr instanceof Cookie) {
+    return cookiestr;
+  }
+    else {
+        if(this instanceof Cookie) {
+          this.name = null;
+          this.value = null;
+          this.expiration_date = Infinity;
+          this.path = "/";
+          this.domain = null;
+          this.secure = false; //how to define?
+          this.noscript = false; //httponly
+          if(cookiestr) {
+            this.parse(cookiestr)
+          }
+          return this;
+        }
+        return new Cookie(cookiestr)
+    }
+}
+
+Cookie.prototype.toString = function toString() {
+  var str=[this.name+"="+this.value];
+  if(this.expiration_date !== Infinity) {
+    str.push("expires="+(new Date(this.expiration_date)).toGMTString());
+  }
+  if(this.domain) {
+    str.push("domain="+this.domain);
+  }
+  if(this.path) {
+    str.push("path="+this.path);
+  }
+  if(this.secure) {
+    str.push("secure");
+  }
+  if(this.noscript) {
+    str.push("httponly");
+  }
+  return str.join("; ");
+}
+
+Cookie.prototype.toValueString = function toValueString() {
+  return this.name+"="+this.value;
+}
+
+var cookie_str_splitter=/[:](?=\s*[a-zA-Z0-9_\-]+\s*[=])/g
+Cookie.prototype.parse = function parse(str) {
+  if(this instanceof Cookie) {
+      var parts=str.split(";")
+      , pair=parts[0].match(/([^=]+)=((?:.|\n)*)/)
+      , key=pair[1]
+      , value=pair[2];
+      this.name = key;
+      this.value = value;
+    
+      for(var i=1;i<parts.length;i++) {
+        pair=parts[i].match(/([^=]+)(?:=((?:.|\n)*))?/)
+        , key=pair[1].trim().toLowerCase()
+        , value=pair[2];
+        switch(key) {
+          case "httponly":
+            this.noscript = true;
+          break;
+          case "expires":
+            this.expiration_date = value
+              ? Number(Date.parse(value))
+              : Infinity;
+          break;
+          case "path":
+            this.path = value
+              ? value.trim()
+              : "";
+          break;
+          case "domain":
+            this.domain = value
+              ? value.trim()
+              : "";
+          break;
+          case "secure":
+            this.secure = true;
+          break
+        }
+      }
+    
+      return this;
+  }
+    return new Cookie().parse(str)
+}
+
+Cookie.prototype.matches = function matches(access_info) {
+  if(this.noscript && access_info.script
+  || this.secure && !access_info.secure
+  || !this.collidesWith(access_info)) {
+    return false
+  }
+  return true;
+}
+
+Cookie.prototype.collidesWith = function collidesWith(access_info) {
+  if((this.path && !access_info.path) || (this.domain && !access_info.domain)) {
+    return false
+  }
+  if(this.path && access_info.path.indexOf(this.path) !== 0) {
+    return false;
+  }
+  if (this.domain===access_info.domain) {
+    return true;
+  }
+  else if(this.domain && this.domain.charAt(0)===".")
+  {
+    var wildcard=access_info.domain.indexOf(this.domain.slice(1))
+    if(wildcard===-1 || wildcard!==access_info.domain.length-this.domain.length+1) {
+      return false;
+    }
+  }
+  else if(this.domain){
+    return false
+  }
+  return true;
+}
+
+exports.CookieJar=CookieJar=function CookieJar() {
+  if(this instanceof CookieJar) {
+      var cookies = {} //name: [Cookie]
+    
+      this.setCookie = function setCookie(cookie) {
+        cookie = Cookie(cookie);
+        //Delete the cookie if the set is past the current time
+        var remove = cookie.expiration_date <= Date.now();
+        if(cookie.name in cookies) {
+          var cookies_list = cookies[cookie.name];
+          for(var i=0;i<cookies_list.length;i++) {
+            var collidable_cookie = cookies_list[i];
+            if(collidable_cookie.collidesWith(cookie)) {
+              if(remove) {
+                cookies_list.splice(i,1);
+                if(cookies_list.length===0) {
+                  delete cookies[cookie.name]
+                }
+                return false;
+              }
+              else {
+                return cookies_list[i]=cookie;
+              }
+            }
+          }
+          if(remove) {
+            return false;
+          }
+          cookies_list.push(cookie);
+          return cookie;
+        }
+        else if(remove){
+          return false;
+        }
+        else {
+          return cookies[cookie.name]=[cookie];
+        }
+      }
+      //returns a cookie
+      this.getCookie = function getCookie(cookie_name,access_info) {
+        var cookies_list = cookies[cookie_name];
+        for(var i=0;i<cookies_list.length;i++) {
+          var cookie = cookies_list[i];
+          if(cookie.expiration_date <= Date.now()) {
+            if(cookies_list.length===0) {
+              delete cookies[cookie.name]
+            }
+            continue;
+          }
+          if(cookie.matches(access_info)) {
+            return cookie;
+          }
+        }
+      }
+      //returns a list of cookies
+      this.getCookies = function getCookies(access_info) {
+        var matches=[];
+        for(var cookie_name in cookies) {
+          var cookie=this.getCookie(cookie_name,access_info);
+          if (cookie) {
+            matches.push(cookie);
+          }
+        }
+        matches.toString=function toString(){return matches.join(":");}
+            matches.toValueString=function() {return matches.map(function(c){return c.toValueString();}).join(';');}
+        return matches;
+      }
+    
+      return this;
+  }
+    return new CookieJar()
+}
+
+
+//returns list of cookies that were set correctly
+CookieJar.prototype.setCookies = function setCookies(cookies) {
+  cookies=Array.isArray(cookies)
+    ?cookies
+    :cookies.split(cookie_str_splitter);
+  var successful=[]
+  for(var i=0;i<cookies.length;i++) {
+    var cookie = Cookie(cookies[i]);
+    if(this.setCookie(cookie)) {
+      successful.push(cookie);
+    }
+  }
+  return successful;
+}
+
+});
+
+require.define("/shred/request.js", function (require, module, exports, __dirname, __filename) {
+    // The request object encapsulates a request, creating a Node.js HTTP request and
+// then handling the response.
+
+var HTTP = require("http")
+  , HTTPS = require("https")
+  , parseUri = require("./parseUri")
+  , Emitter = require('events').EventEmitter
+  , sprintf = require("sprintf").sprintf
+  , Response = require("./response")
+  , HeaderMixins = require("./mixins/headers")
+  , Content = require("./content")
+;
+
+var STATUS_CODES = HTTP.STATUS_CODES || {
+    100 : 'Continue',
+    101 : 'Switching Protocols',
+    102 : 'Processing', // RFC 2518, obsoleted by RFC 4918
+    200 : 'OK',
+    201 : 'Created',
+    202 : 'Accepted',
+    203 : 'Non-Authoritative Information',
+    204 : 'No Content',
+    205 : 'Reset Content',
+    206 : 'Partial Content',
+    207 : 'Multi-Status', // RFC 4918
+    300 : 'Multiple Choices',
+    301 : 'Moved Permanently',
+    302 : 'Moved Temporarily',
+    303 : 'See Other',
+    304 : 'Not Modified',
+    305 : 'Use Proxy',
+    307 : 'Temporary Redirect',
+    400 : 'Bad Request',
+    401 : 'Unauthorized',
+    402 : 'Payment Required',
+    403 : 'Forbidden',
+    404 : 'Not Found',
+    405 : 'Method Not Allowed',
+    406 : 'Not Acceptable',
+    407 : 'Proxy Authentication Required',
+    408 : 'Request Time-out',
+    409 : 'Conflict',
+    410 : 'Gone',
+    411 : 'Length Required',
+    412 : 'Precondition Failed',
+    413 : 'Request Entity Too Large',
+    414 : 'Request-URI Too Large',
+    415 : 'Unsupported Media Type',
+    416 : 'Requested Range Not Satisfiable',
+    417 : 'Expectation Failed',
+    418 : 'I\'m a teapot', // RFC 2324
+    422 : 'Unprocessable Entity', // RFC 4918
+    423 : 'Locked', // RFC 4918
+    424 : 'Failed Dependency', // RFC 4918
+    425 : 'Unordered Collection', // RFC 4918
+    426 : 'Upgrade Required', // RFC 2817
+    500 : 'Internal Server Error',
+    501 : 'Not Implemented',
+    502 : 'Bad Gateway',
+    503 : 'Service Unavailable',
+    504 : 'Gateway Time-out',
+    505 : 'HTTP Version not supported',
+    506 : 'Variant Also Negotiates', // RFC 2295
+    507 : 'Insufficient Storage', // RFC 4918
+    509 : 'Bandwidth Limit Exceeded',
+    510 : 'Not Extended' // RFC 2774
+};
+
+// The Shred object itself constructs the `Request` object. You should rarely
+// need to do this directly.
+
+var Request = function(options) {
+  this.log = options.logger;
+  this.cookieJar = options.cookieJar;
+  this.encoding = options.encoding;
+  this.logCurl = options.logCurl;
+  processOptions(this,options||{});
+  createRequest(this);
+};
+
+// A `Request` has a number of properties, many of which help with details like
+// URL parsing or defaulting the port for the request.
+
+Object.defineProperties(Request.prototype, {
+
+// - **url**. You can set the `url` property with a valid URL string and all the
+//   URL-related properties (host, port, etc.) will be automatically set on the
+//   request object.
+
+  url: {
+    get: function() {
+      if (!this.scheme) { return null; }
+      return sprintf("%s://%s:%s%s",
+          this.scheme, this.host, this.port,
+          (this.proxy ? "/" : this.path) +
+          (this.query ? ("?" + this.query) : ""));
+    },
+    set: function(_url) {
+      _url = parseUri(_url);
+      this.scheme = _url.protocol;
+      this.host = _url.host;
+      this.port = _url.port;
+      this.path = _url.path;
+      this.query = _url.query;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **headers**. Returns a hash representing the request headers. You can't set
+//   this directly, only get it. You can add or modify headers by using the
+//   `setHeader` or `setHeaders` method. This ensures that the headers are
+//   normalized - that is, you don't accidentally send `Content-Type` and
+//   `content-type` headers. Keep in mind that if you modify the returned hash,
+//   it will *not* modify the request headers.
+
+  headers: {
+    get: function() {
+      return this.getHeaders();
+    },
+    enumerable: true
+  },
+
+// - **port**. Unless you set the `port` explicitly or include it in the URL, it
+//   will default based on the scheme.
+
+  port: {
+    get: function() {
+      if (!this._port) {
+        switch(this.scheme) {
+          case "https": return this._port = 443;
+          case "http":
+          default: return this._port = 80;
+        }
+      }
+      return this._port;
+    },
+    set: function(value) { this._port = value; return this; },
+    enumerable: true
+  },
+
+// - **method**. The request method - `get`, `put`, `post`, etc. that will be
+//   used to make the request. Defaults to `get`.
+
+  method: {
+    get: function() {
+      return this._method = (this._method||"GET");
+    },
+    set: function(value) {
+      this._method = value; return this;
+    },
+    enumerable: true
+  },
+
+// - **query**. Can be set either with a query string or a hash (object). Get
+//   will always return a properly escaped query string or null if there is no
+//   query component for the request.
+
+  query: {
+    get: function() {return this._query;},
+    set: function(value) {
+      var stringify = function (hash) {
+        var query = "";
+        for (var key in hash) {
+          query += encodeURIComponent(key) + '=' + encodeURIComponent(hash[key]) + '&';
+        }
+        // Remove the last '&'
+        query = query.slice(0, -1);
+        return query;
+      }
+
+      if (value) {
+        if (typeof value === 'object') {
+          value = stringify(value);
+        }
+        this._query = value;
+      } else {
+        this._query = "";
+      }
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **parameters**. This will return the query parameters in the form of a hash
+//   (object).
+
+  parameters: {
+    get: function() { return QueryString.parse(this._query||""); },
+    enumerable: true
+  },
+
+// - **content**. (Aliased as `body`.) Set this to add a content entity to the
+//   request. Attempts to use the `content-type` header to determine what to do
+//   with the content value. Get this to get back a [`Content`
+//   object](./content.html).
+
+  body: {
+    get: function() { return this._body; },
+    set: function(value) {
+      this._body = new Content({
+        data: value,
+        type: this.getHeader("Content-Type")
+      });
+      this.setHeader("Content-Type",this.content.type);
+      this.setHeader("Content-Length",this.content.length);
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **timeout**. Used to determine how long to wait for a response. Does not
+//   distinguish between connect timeouts versus request timeouts. Set either in
+//   milliseconds or with an object with temporal attributes (hours, minutes,
+//   seconds) and convert it into milliseconds. Get will always return
+//   milliseconds.
+
+  timeout: {
+    get: function() { return this._timeout; }, // in milliseconds
+    set: function(timeout) {
+      var request = this
+        , milliseconds = 0;
+      ;
+      if (!timeout) return this;
+      if (typeof timeout==="number") { milliseconds = timeout; }
+      else {
+        milliseconds = (timeout.milliseconds||0) +
+          (1000 * ((timeout.seconds||0) +
+              (60 * ((timeout.minutes||0) +
+                (60 * (timeout.hours||0))))));
+      }
+      this._timeout = milliseconds;
+      return this;
+    },
+    enumerable: true
+  }
+});
+
+// Alias `body` property to `content`. Since the [content object](./content.html)
+// has a `body` attribute, it's preferable to use `content` since you can then
+// access the raw content data using `content.body`.
+
+Object.defineProperty(Request.prototype,"content",
+    Object.getOwnPropertyDescriptor(Request.prototype, "body"));
+
+// The `Request` object can be pretty overwhelming to view using the built-in
+// Node.js inspect method. We want to make it a bit more manageable. This
+// probably goes [too far in the other
+// direction](https://github.com/spire-io/shred/issues/2).
+
+Request.prototype.inspect = function () {
+  var request = this;
+  var headers = this.format_headers();
+  var summary = ["<Shred Request> ", request.method.toUpperCase(),
+      request.url].join(" ")
+  return [ summary, "- Headers:", headers].join("\n");
+};
+
+Request.prototype.format_headers = function () {
+  var array = []
+  var headers = this._headers
+  for (var key in headers) {
+    if (headers.hasOwnProperty(key)) {
+      var value = headers[key]
+      array.push("\t" + key + ": " + value);
+    }
+  }
+  return array.join("\n");
+};
+
+// Allow chainable 'on's:  shred.get({ ... }).on( ... ).  You can pass in a
+// single function, a pair (event, function), or a hash:
+// { event: function, event: function }
+Request.prototype.on = function (eventOrHash, listener) {
+  var emitter = this.emitter;
+  // Pass in a single argument as a function then make it the default response handler
+  if (arguments.length === 1 && typeof(eventOrHash) === 'function') {
+    emitter.on('response', eventOrHash);
+  } else if (arguments.length === 1 && typeof(eventOrHash) === 'object') {
+    for (var key in eventOrHash) {
+      if (eventOrHash.hasOwnProperty(key)) {
+        emitter.on(key, eventOrHash[key]);
+      }
+    }
+  } else {
+    emitter.on(eventOrHash, listener);
+  }
+  return this;
+};
+
+// Add in the header methods. Again, these ensure we don't get the same header
+// multiple times with different case conventions.
+HeaderMixins.gettersAndSetters(Request);
+
+// `processOptions` is called from the constructor to handle all the work
+// associated with making sure we do our best to ensure we have a valid request.
+
+var processOptions = function(request,options) {
+
+  request.log.debug("Processing request options ..");
+
+  // We'll use `request.emitter` to manage the `on` event handlers.
+  request.emitter = (new Emitter);
+
+  request.agent = options.agent;
+
+  // Set up the handlers ...
+  if (options.on) {
+    for (var key in options.on) {
+      if (options.on.hasOwnProperty(key)) {
+        request.emitter.on(key, options.on[key]);
+      }
+    }
+  }
+
+  // Make sure we were give a URL or a host
+  if (!options.url && !options.host) {
+    request.emitter.emit("request_error",
+        new Error("No url or url options (host, port, etc.)"));
+    return;
+  }
+
+  // Allow for the [use of a proxy](http://www.jmarshall.com/easy/http/#proxies).
+
+  if (options.url) {
+    if (options.proxy) {
+      request.url = options.proxy;
+      request.path = options.url;
+    } else {
+      request.url = options.url;
+    }
+  }
+
+  // Set the remaining options.
+  request.query = options.query||options.parameters||request.query ;
+  request.method = options.method;
+  request.setHeader("user-agent",options.agent||"Shred");
+  request.setHeaders(options.headers);
+
+  if (request.cookieJar) {
+    var cookies = request.cookieJar.getCookies( CookieAccessInfo( request.host, request.path ) );
+    if (cookies.length) {
+      var cookieString = request.getHeader('cookie')||'';
+      for (var cookieIndex = 0; cookieIndex < cookies.length; ++cookieIndex) {
+          if ( cookieString.length && cookieString[ cookieString.length - 1 ] != ';' )
+          {
+              cookieString += ';';
+          }
+          cookieString += cookies[ cookieIndex ].name + '=' + cookies[ cookieIndex ].value + ';';
+      }
+      request.setHeader("cookie", cookieString);
+    }
+  }
+  
+  // The content entity can be set either using the `body` or `content` attributes.
+  if (options.body||options.content) {
+    request.content = options.body||options.content;
+  }
+  request.timeout = options.timeout;
+
+};
+
+// `createRequest` is also called by the constructor, after `processOptions`.
+// This actually makes the request and processes the response, so `createRequest`
+// is a bit of a misnomer.
+
+var createRequest = function(request) {
+  var timeout ;
+
+  request.log.debug("Creating request ..");
+  request.log.debug(request);
+
+  var reqParams = {
+    host: request.host,
+    port: request.port,
+    method: request.method,
+    path: request.path + (request.query ? '?'+request.query : ""),
+    headers: request.getHeaders(),
+    // Node's HTTP/S modules will ignore this, but we are using the
+    // browserify-http module in the browser for both HTTP and HTTPS, and this
+    // is how you differentiate the two.
+    scheme: request.scheme,
+    // Use a provided agent.  'Undefined' is the default, which uses a global
+    // agent.
+    agent: request.agent
+  };
+
+  if (request.logCurl) {
+    logCurl(request);
+  }
+
+  var http = request.scheme == "http" ? HTTP : HTTPS;
+
+  // Set up the real request using the selected library. The request won't be
+  // sent until we call `.end()`.
+  request._raw = http.request(reqParams, function(response) {
+    request.log.debug("Received response ..");
+
+    // We haven't timed out and we have a response, so make sure we clear the
+    // timeout so it doesn't fire while we're processing the response.
+    clearTimeout(timeout);
+
+    // Construct a Shred `Response` object from the response. This will stream
+    // the response, thus the need for the callback. We can access the response
+    // entity safely once we're in the callback.
+    response = new Response(response, request, function(response) {
+
+      // Set up some event magic. The precedence is given first to
+      // status-specific handlers, then to responses for a given event, and then
+      // finally to the more general `response` handler. In the last case, we
+      // need to first make sure we're not dealing with a a redirect.
+      var emit = function(event) {
+        var emitter = request.emitter;
+        var textStatus = STATUS_CODES[response.status] ? STATUS_CODES[response.status].toLowerCase() : null;
+        if (emitter.listeners(response.status).length > 0 || emitter.listeners(textStatus).length > 0) {
+          emitter.emit(response.status, response);
+          emitter.emit(textStatus, response);
+        } else {
+          if (emitter.listeners(event).length>0) {
+            emitter.emit(event, response);
+          } else if (!response.isRedirect) {
+            emitter.emit("response", response);
+            //console.warn("Request has no event listener for status code " + response.status);
+          }
+        }
+      };
+
+      // Next, check for a redirect. We simply repeat the request with the URL
+      // given in the `Location` header. We fire a `redirect` event.
+      if (response.isRedirect) {
+        request.log.debug("Redirecting to "
+            + response.getHeader("Location"));
+        request.url = response.getHeader("Location");
+        emit("redirect");
+        createRequest(request);
+
+      // Okay, it's not a redirect. Is it an error of some kind?
+      } else if (response.isError) {
+        emit("error");
+      } else {
+      // It looks like we're good shape. Trigger the `success` event.
+        emit("success");
+      }
+    });
+  });
+
+  // We're still setting up the request. Next, we're going to handle error cases
+  // where we have no response. We don't emit an error event because that event
+  // takes a response. We don't response handlers to have to check for a null
+  // value. However, we [should introduce a different event
+  // type](https://github.com/spire-io/shred/issues/3) for this type of error.
+  request._raw.on("error", function(error) {
+    request.emitter.emit("request_error", error);
+  });
+
+  request._raw.on("socket", function(socket) {
+    request.emitter.emit("socket", socket);
+  });
+
+  // TCP timeouts should also trigger the "response_error" event.
+  request._raw.on('socket', function () {
+    request._raw.socket.on('timeout', function () {
+      // This should trigger the "error" event on the raw request, which will
+      // trigger the "response_error" on the shred request.
+      request._raw.abort();
+    });
+  });
+
+
+  // We're almost there. Next, we need to write the request entity to the
+  // underlying request object.
+  if (request.content) {
+    request.log.debug("Streaming body: '" +
+        request.content.data.slice(0,59) + "' ... ");
+    request._raw.write(request.content.data);
+  }
+
+  // Finally, we need to set up the timeout. We do this last so that we don't
+  // start the clock ticking until the last possible moment.
+  if (request.timeout) {
+    timeout = setTimeout(function() {
+      request.log.debug("Timeout fired, aborting request ...");
+      request._raw.abort();
+      request.emitter.emit("timeout", request);
+    },request.timeout);
+  }
+
+  // The `.end()` method will cause the request to fire. Technically, it might
+  // have already sent the headers and body.
+  request.log.debug("Sending request ...");
+  request._raw.end();
+};
+
+// Logs the curl command for the request.
+var logCurl = function (req) {
+  var headers = req.getHeaders();
+  var headerString = "";
+
+  for (var key in headers) {
+    headerString += '-H "' + key + ": " + headers[key] + '" ';
+  }
+
+  var bodyString = ""
+
+  if (req.content) {
+    bodyString += "-d '" + req.content.body + "' ";
+  }
+
+  var query = req.query ? '?' + req.query : "";
+
+  console.log("curl " +
+    "-X " + req.method.toUpperCase() + " " +
+    req.scheme + "://" + req.host + ":" + req.port + req.path + query + " " +
+    headerString +
+    bodyString
+  );
+};
+
+
+module.exports = Request;
+
+});
+
+require.define("http", function (require, module, exports, __dirname, __filename) {
+    // todo
+
+});
+
+require.define("https", function (require, module, exports, __dirname, __filename) {
+    // todo
+
+});
+
+require.define("/shred/parseUri.js", function (require, module, exports, __dirname, __filename) {
+    // parseUri 1.2.2
+// (c) Steven Levithan <stevenlevithan.com>
+// MIT License
+
+function parseUri (str) {
+  var o   = parseUri.options,
+    m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
+    uri = {},
+    i   = 14;
+
+  while (i--) uri[o.key[i]] = m[i] || "";
+
+  uri[o.q.name] = {};
+  uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
+    if ($1) uri[o.q.name][$1] = $2;
+  });
+
+  return uri;
+};
+
+parseUri.options = {
+  strictMode: false,
+  key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
+  q:   {
+    name:   "queryKey",
+    parser: /(?:^|&)([^&=]*)=?([^&]*)/g
+  },
+  parser: {
+    strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
+    loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
+  }
+};
+
+module.exports = parseUri;
+
+});
+
+require.define("events", function (require, module, exports, __dirname, __filename) {
+    if (!process.EventEmitter) process.EventEmitter = function () {};
+
+var EventEmitter = exports.EventEmitter = process.EventEmitter;
+var isArray = typeof Array.isArray === 'function'
+    ? Array.isArray
+    : function (xs) {
+        return Object.toString.call(xs) === '[object Array]'
+    }
+;
+
+// By default EventEmitters will print a warning if more than
+// 10 listeners are added to it. This is a useful default which
+// helps finding memory leaks.
+//
+// Obviously not all Emitters should be limited to 10. This function allows
+// that to be increased. Set to zero for unlimited.
+var defaultMaxListeners = 10;
+EventEmitter.prototype.setMaxListeners = function(n) {
+  if (!this._events) this._events = {};
+  this._events.maxListeners = n;
+};
+
+
+EventEmitter.prototype.emit = function(type) {
+  // If there is no 'error' event listener then throw.
+  if (type === 'error') {
+    if (!this._events || !this._events.error ||
+        (isArray(this._events.error) && !this._events.error.length))
+    {
+      if (arguments[1] instanceof Error) {
+        throw arguments[1]; // Unhandled 'error' event
+      } else {
+        throw new Error("Uncaught, unspecified 'error' event.");
+      }
+      return false;
+    }
+  }
+
+  if (!this._events) return false;
+  var handler = this._events[type];
+  if (!handler) return false;
+
+  if (typeof handler == 'function') {
+    switch (arguments.length) {
+      // fast cases
+      case 1:
+        handler.call(this);
+        break;
+      case 2:
+        handler.call(this, arguments[1]);
+        break;
+      case 3:
+        handler.call(this, arguments[1], arguments[2]);
+        break;
+      // slower
+      default:
+        var args = Array.prototype.slice.call(arguments, 1);
+        handler.apply(this, args);
+    }
+    return true;
+
+  } else if (isArray(handler)) {
+    var args = Array.prototype.slice.call(arguments, 1);
+
+    var listeners = handler.slice();
+    for (var i = 0, l = listeners.length; i < l; i++) {
+      listeners[i].apply(this, args);
+    }
+    return true;
+
+  } else {
+    return false;
+  }
+};
+
+// EventEmitter is defined in src/node_events.cc
+// EventEmitter.prototype.emit() is also defined there.
+EventEmitter.prototype.addListener = function(type, listener) {
+  if ('function' !== typeof listener) {
+    throw new Error('addListener only takes instances of Function');
+  }
+
+  if (!this._events) this._events = {};
+
+  // To avoid recursion in the case that type == "newListeners"! Before
+  // adding it to the listeners, first emit "newListeners".
+  this.emit('newListener', type, listener);
+
+  if (!this._events[type]) {
+    // Optimize the case of one listener. Don't need the extra array object.
+    this._events[type] = listener;
+  } else if (isArray(this._events[type])) {
+
+    // Check for listener leak
+    if (!this._events[type].warned) {
+      var m;
+      if (this._events.maxListeners !== undefined) {
+        m = this._events.maxListeners;
+      } else {
+        m = defaultMaxListeners;
+      }
+
+      if (m && m > 0 && this._events[type].length > m) {
+        this._events[type].warned = true;
+        console.error('(node) warning: possible EventEmitter memory ' +
+                      'leak detected. %d listeners added. ' +
+                      'Use emitter.setMaxListeners() to increase limit.',
+                      this._events[type].length);
+        console.trace();
+      }
+    }
+
+    // If we've already got an array, just append.
+    this._events[type].push(listener);
+  } else {
+    // Adding the second element, need to change to array.
+    this._events[type] = [this._events[type], listener];
+  }
+
+  return this;
+};
+
+EventEmitter.prototype.on = EventEmitter.prototype.addListener;
+
+EventEmitter.prototype.once = function(type, listener) {
+  var self = this;
+  self.on(type, function g() {
+    self.removeListener(type, g);
+    listener.apply(this, arguments);
+  });
+
+  return this;
+};
+
+EventEmitter.prototype.removeListener = function(type, listener) {
+  if ('function' !== typeof listener) {
+    throw new Error('removeListener only takes instances of Function');
+  }
+
+  // does not use listeners(), so no side effect of creating _events[type]
+  if (!this._events || !this._events[type]) return this;
+
+  var list = this._events[type];
+
+  if (isArray(list)) {
+    var i = list.indexOf(listener);
+    if (i < 0) return this;
+    list.splice(i, 1);
+    if (list.length == 0)
+      delete this._events[type];
+  } else if (this._events[type] === listener) {
+    delete this._events[type];
+  }
+
+  return this;
+};
+
+EventEmitter.prototype.removeAllListeners = function(type) {
+  // does not use listeners(), so no side effect of creating _events[type]
+  if (type && this._events && this._events[type]) this._events[type] = null;
+  return this;
+};
+
+EventEmitter.prototype.listeners = function(type) {
+  if (!this._events) this._events = {};
+  if (!this._events[type]) this._events[type] = [];
+  if (!isArray(this._events[type])) {
+    this._events[type] = [this._events[type]];
+  }
+  return this._events[type];
+};
+
+});
+
+require.define("/node_modules/sprintf/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {"main":"./lib/sprintf"}
+});
+
+require.define("/node_modules/sprintf/lib/sprintf.js", function (require, module, exports, __dirname, __filename) {
+    /**
+sprintf() for JavaScript 0.7-beta1
+http://www.diveintojavascript.com/projects/javascript-sprintf
+
+Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of sprintf() for JavaScript nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Changelog:
+2010.11.07 - 0.7-beta1-node
+  - converted it to a node.js compatible module
+
+2010.09.06 - 0.7-beta1
+  - features: vsprintf, support for named placeholders
+  - enhancements: format cache, reduced global namespace pollution
+
+2010.05.22 - 0.6:
+ - reverted to 0.4 and fixed the bug regarding the sign of the number 0
+ Note:
+ Thanks to Raphael Pigulla <raph (at] n3rd [dot) org> (http://www.n3rd.org/)
+ who warned me about a bug in 0.5, I discovered that the last update was
+ a regress. I appologize for that.
+
+2010.05.09 - 0.5:
+ - bug fix: 0 is now preceeded with a + sign
+ - bug fix: the sign was not at the right position on padded results (Kamal Abdali)
+ - switched from GPL to BSD license
+
+2007.10.21 - 0.4:
+ - unit test and patch (David Baird)
+
+2007.09.17 - 0.3:
+ - bug fix: no longer throws exception on empty paramenters (Hans Pufal)
+
+2007.09.11 - 0.2:
+ - feature: added argument swapping
+
+2007.04.03 - 0.1:
+ - initial release
+**/
+
+var sprintf = (function() {
+  function get_type(variable) {
+    return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
+  }
+  function str_repeat(input, multiplier) {
+    for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
+    return output.join('');
+  }
+
+  var str_format = function() {
+    if (!str_format.cache.hasOwnProperty(arguments[0])) {
+      str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
+    }
+    return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
+  };
+
+  str_format.format = function(parse_tree, argv) {
+    var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
+    for (i = 0; i < tree_length; i++) {
+      node_type = get_type(parse_tree[i]);
+      if (node_type === 'string') {
+        output.push(parse_tree[i]);
+      }
+      else if (node_type === 'array') {
+        match = parse_tree[i]; // convenience purposes only
+        if (match[2]) { // keyword argument
+          arg = argv[cursor];
+          for (k = 0; k < match[2].length; k++) {
+            if (!arg.hasOwnProperty(match[2][k])) {
+              throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
+            }
+            arg = arg[match[2][k]];
+          }
+        }
+        else if (match[1]) { // positional argument (explicit)
+          arg = argv[match[1]];
+        }
+        else { // positional argument (implicit)
+          arg = argv[cursor++];
+        }
+
+        if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
+          throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
+        }
+        switch (match[8]) {
+          case 'b': arg = arg.toString(2); break;
+          case 'c': arg = String.fromCharCode(arg); break;
+          case 'd': arg = parseInt(arg, 10); break;
+          case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
+          case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
+          case 'o': arg = arg.toString(8); break;
+          case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
+          case 'u': arg = Math.abs(arg); break;
+          case 'x': arg = arg.toString(16); break;
+          case 'X': arg = arg.toString(16).toUpperCase(); break;
+        }
+        arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
+        pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
+        pad_length = match[6] - String(arg).length;
+        pad = match[6] ? str_repeat(pad_character, pad_length) : '';
+        output.push(match[5] ? arg + pad : pad + arg);
+      }
+    }
+    return output.join('');
+  };
+
+  str_format.cache = {};
+
+  str_format.parse = function(fmt) {
+    var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
+    while (_fmt) {
+      if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
+        parse_tree.push(match[0]);
+      }
+      else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
+        parse_tree.push('%');
+      }
+      else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
+        if (match[2]) {
+          arg_names |= 1;
+          var field_list = [], replacement_field = match[2], field_match = [];
+          if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
+            field_list.push(field_match[1]);
+            while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
+              if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
+                field_list.push(field_match[1]);
+              }
+              else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
+                field_list.push(field_match[1]);
+              }
+              else {
+                throw('[sprintf] huh?');
+              }
+            }
+          }
+          else {
+            throw('[sprintf] huh?');
+          }
+          match[2] = field_list;
+        }
+        else {
+          arg_names |= 2;
+        }
+        if (arg_names === 3) {
+          throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
+        }
+        parse_tree.push(match);
+      }
+      else {
+        throw('[sprintf] huh?');
+      }
+      _fmt = _fmt.substring(match[0].length);
+    }
+    return parse_tree;
+  };
+
+  return str_format;
+})();
+
+var vsprintf = function(fmt, argv) {
+  argv.unshift(fmt);
+  return sprintf.apply(null, argv);
+};
+
+exports.sprintf = sprintf;
+exports.vsprintf = vsprintf;
+});
+
+require.define("/shred/response.js", function (require, module, exports, __dirname, __filename) {
+    // The `Response object` encapsulates a Node.js HTTP response.
+
+var Content = require("./content")
+  , HeaderMixins = require("./mixins/headers")
+  , CookieJarLib = require( "cookiejar" )
+  , Cookie = CookieJarLib.Cookie
+;
+
+// Browser doesn't have zlib.
+var zlib = null;
+try {
+  zlib = require('zlib');
+} catch (e) {
+  console.warn("no zlib library");
+}
+
+// Iconv doesn't work in browser
+var Iconv = null;
+try {
+  Iconv = require('iconv-lite');
+} catch (e) {
+  console.warn("no iconv library");
+}
+
+// Construct a `Response` object. You should never have to do this directly. The
+// `Request` object handles this, getting the raw response object and passing it
+// in here, along with the request. The callback allows us to stream the response
+// and then use the callback to let the request know when it's ready.
+var Response = function(raw, request, callback) { 
+  var response = this;
+  this._raw = raw;
+
+  // The `._setHeaders` method is "private"; you can't otherwise set headers on
+  // the response.
+  this._setHeaders.call(this,raw.headers);
+  
+  // store any cookies
+  if (request.cookieJar && this.getHeader('set-cookie')) {
+    var cookieStrings = this.getHeader('set-cookie');
+    var cookieObjs = []
+      , cookie;
+
+    for (var i = 0; i < cookieStrings.length; i++) {
+      var cookieString = cookieStrings[i];
+      if (!cookieString) {
+        continue;
+      }
+
+      if (!cookieString.match(/domain\=/i)) {
+        cookieString += '; domain=' + request.host;
+      }
+
+      if (!cookieString.match(/path\=/i)) {
+        cookieString += '; path=' + request.path;
+      }
+
+      try {
+        cookie = new Cookie(cookieString);
+        if (cookie) {
+          cookieObjs.push(cookie);
+        }
+      } catch (e) {
+        console.warn("Tried to set bad cookie: " + cookieString);
+      }
+    }
+
+    request.cookieJar.setCookies(cookieObjs);
+  }
+
+  this.request = request;
+  this.client = request.client;
+  this.log = this.request.log;
+
+  // Stream the response content entity and fire the callback when we're done.
+  // Store the incoming data in a array of Buffers which we concatinate into one
+  // buffer at the end.  We need to use buffers instead of strings here in order
+  // to preserve binary data.
+  var chunkBuffers = [];
+  var dataLength = 0;
+  raw.on("data", function(chunk) {
+    chunkBuffers.push(chunk);
+    dataLength += chunk.length;
+  });
+  raw.on("end", function() {
+    var body;
+    if (typeof Buffer === 'undefined') {
+      // Just concatinate into a string
+      body = chunkBuffers.join('');
+    } else {
+      // Initialize new buffer and add the chunks one-at-a-time.
+      body = new Buffer(dataLength);
+      for (var i = 0, pos = 0; i < chunkBuffers.length; i++) {
+        chunkBuffers[i].copy(body, pos);
+        pos += chunkBuffers[i].length;
+      }
+    }
+
+    var setBodyAndFinish = function (body) {
+      response._body = new Content({ 
+        body: body,
+        type: response.getHeader("Content-Type")
+      });
+      callback(response);
+    }
+
+    if (zlib && response.getHeader("Content-Encoding") === 'gzip'){
+      zlib.gunzip(body, function (err, gunzippedBody) {
+        if (Iconv && response.request.encoding){
+          body = Iconv.fromEncoding(gunzippedBody,response.request.encoding);
+        } else {
+          body = gunzippedBody.toString();
+        }
+        setBodyAndFinish(body);
+      })
+    }
+    else{
+       if (response.request.encoding){
+            body = Iconv.fromEncoding(body,response.request.encoding);
+        }        
+      setBodyAndFinish(body);
+    }
+  });
+};
+
+// The `Response` object can be pretty overwhelming to view using the built-in
+// Node.js inspect method. We want to make it a bit more manageable. This
+// probably goes [too far in the other
+// direction](https://github.com/spire-io/shred/issues/2).
+
+Response.prototype = {
+  inspect: function() {
+    var response = this;
+    var headers = this.format_headers();
+    var summary = ["<Shred Response> ", response.status].join(" ")
+    return [ summary, "- Headers:", headers].join("\n");
+  },
+  format_headers: function () {
+    var array = []
+    var headers = this._headers
+    for (var key in headers) {
+      if (headers.hasOwnProperty(key)) {
+        var value = headers[key]
+        array.push("\t" + key + ": " + value);
+      }
+    }
+    return array.join("\n");
+  }
+};
+
+// `Response` object properties, all of which are read-only:
+Object.defineProperties(Response.prototype, {
+  
+// - **status**. The HTTP status code for the response. 
+  status: {
+    get: function() { return this._raw.statusCode; },
+    enumerable: true
+  },
+
+// - **content**. The HTTP content entity, if any. Provided as a [content
+//   object](./content.html), which will attempt to convert the entity based upon
+//   the `content-type` header. The converted value is available as
+//   `content.data`. The original raw content entity is available as
+//   `content.body`.
+  body: {
+    get: function() { return this._body; }
+  },
+  content: {
+    get: function() { return this.body; },
+    enumerable: true
+  },
+
+// - **isRedirect**. Is the response a redirect? These are responses with 3xx
+//   status and a `Location` header.
+  isRedirect: {
+    get: function() {
+      return (this.status>299
+          &&this.status<400
+          &&this.getHeader("Location"));
+    },
+    enumerable: true
+  },
+
+// - **isError**. Is the response an error? These are responses with status of
+//   400 or greater.
+  isError: {
+    get: function() {
+      return (this.status === 0 || this.status > 399)
+    },
+    enumerable: true
+  }
+});
+
+// Add in the [getters for accessing the normalized headers](./headers.js).
+HeaderMixins.getters(Response);
+HeaderMixins.privateSetters(Response);
+
+// Work around Mozilla bug #608735 [https://bugzil.la/608735], which causes
+// getAllResponseHeaders() to return {} if the response is a CORS request.
+// xhr.getHeader still works correctly.
+var getHeader = Response.prototype.getHeader;
+Response.prototype.getHeader = function (name) {
+  return (getHeader.call(this,name) ||
+    (typeof this._raw.getHeader === 'function' && this._raw.getHeader(name)));
+};
+
+module.exports = Response;
+
+});
+
+require.define("/shred/content.js", function (require, module, exports, __dirname, __filename) {
+    
+// The purpose of the `Content` object is to abstract away the data conversions
+// to and from raw content entities as strings. For example, you want to be able
+// to pass in a Javascript object and have it be automatically converted into a
+// JSON string if the `content-type` is set to a JSON-based media type.
+// Conversely, you want to be able to transparently get back a Javascript object
+// in the response if the `content-type` is a JSON-based media-type.
+
+// One limitation of the current implementation is that it [assumes the `charset` is UTF-8](https://github.com/spire-io/shred/issues/5).
+
+// The `Content` constructor takes an options object, which *must* have either a
+// `body` or `data` property and *may* have a `type` property indicating the
+// media type. If there is no `type` attribute, a default will be inferred.
+var Content = function(options) {
+  this.body = options.body;
+  this.data = options.data;
+  this.type = options.type;
+};
+
+Content.prototype = {
+  // Treat `toString()` as asking for the `content.body`. That is, the raw content entity.
+  //
+  //     toString: function() { return this.body; }
+  //
+  // Commented out, but I've forgotten why. :/
+};
+
+
+// `Content` objects have the following attributes:
+Object.defineProperties(Content.prototype,{
+  
+// - **type**. Typically accessed as `content.type`, reflects the `content-type`
+//   header associated with the request or response. If not passed as an options
+//   to the constructor or set explicitly, it will infer the type the `data`
+//   attribute, if possible, and, failing that, will default to `text/plain`.
+  type: {
+    get: function() {
+      if (this._type) {
+        return this._type;
+      } else {
+        if (this._data) {
+          switch(typeof this._data) {
+            case "string": return "text/plain";
+            case "object": return "application/json";
+          }
+        }
+      }
+      return "text/plain";
+    },
+    set: function(value) {
+      this._type = value;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **data**. Typically accessed as `content.data`, reflects the content entity
+//   converted into Javascript data. This can be a string, if the `type` is, say,
+//   `text/plain`, but can also be a Javascript object. The conversion applied is
+//   based on the `processor` attribute. The `data` attribute can also be set
+//   directly, in which case the conversion will be done the other way, to infer
+//   the `body` attribute.
+  data: {
+    get: function() {
+      if (this._body) {
+        return this.processor.parser(this._body);
+      } else {
+        return this._data;
+      }
+    },
+    set: function(data) {
+      if (this._body&&data) Errors.setDataWithBody(this);
+      this._data = data;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **body**. Typically accessed as `content.body`, reflects the content entity
+//   as a UTF-8 string. It is the mirror of the `data` attribute. If you set the
+//   `data` attribute, the `body` attribute will be inferred and vice-versa. If
+//   you attempt to set both, an exception is raised.
+  body: {
+    get: function() {
+      if (this._data) {
+        return this.processor.stringify(this._data);
+      } else {
+        return this.processor.stringify(this._body);
+      }
+    },
+    set: function(body) {
+      if (this._data&&body) Errors.setBodyWithData(this);
+      this._body = body;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **processor**. The functions that will be used to convert to/from `data` and
+//   `body` attributes. You can add processors. The two that are built-in are for
+//   `text/plain`, which is basically an identity transformation and
+//   `application/json` and other JSON-based media types (including custom media
+//   types with `+json`). You can add your own processors. See below.
+  processor: {
+    get: function() {
+      var processor = Content.processors[this.type];
+      if (processor) {
+        return processor;
+      } else {
+        // Return the first processor that matches any part of the
+        // content type. ex: application/vnd.foobar.baz+json will match json.
+        var main = this.type.split(";")[0];
+        var parts = main.split(/\+|\//);
+        for (var i=0, l=parts.length; i < l; i++) {
+          processor = Content.processors[parts[i]]
+        }
+        return processor || {parser:identity,stringify:toString};
+      }
+    },
+    enumerable: true
+  },
+
+// - **length**. Typically accessed as `content.length`, returns the length in
+//   bytes of the raw content entity.
+  length: {
+    get: function() {
+      if (typeof Buffer !== 'undefined') {
+        return Buffer.byteLength(this.body);
+      }
+      return this.body.length;
+    }
+  }
+});
+
+Content.processors = {};
+
+// The `registerProcessor` function allows you to add your own processors to
+// convert content entities. Each processor consists of a Javascript object with
+// two properties:
+// - **parser**. The function used to parse a raw content entity and convert it
+//   into a Javascript data type.
+// - **stringify**. The function used to convert a Javascript data type into a
+//   raw content entity.
+Content.registerProcessor = function(types,processor) {
+  
+// You can pass an array of types that will trigger this processor, or just one.
+// We determine the array via duck-typing here.
+  if (types.forEach) {
+    types.forEach(function(type) {
+      Content.processors[type] = processor;
+    });
+  } else {
+    // If you didn't pass an array, we just use what you pass in.
+    Content.processors[types] = processor;
+  }
+};
+
+// Register the identity processor, which is used for text-based media types.
+var identity = function(x) { return x; }
+  , toString = function(x) { return x.toString(); }
+Content.registerProcessor(
+  ["text/html","text/plain","text"],
+  { parser: identity, stringify: toString });
+
+// Register the JSON processor, which is used for JSON-based media types.
+Content.registerProcessor(
+  ["application/json; charset=utf-8","application/json","json"],
+  {
+    parser: function(string) {
+      return JSON.parse(string);
+    },
+    stringify: function(data) {
+      return JSON.stringify(data); }});
+
+// Error functions are defined separately here in an attempt to make the code
+// easier to read.
+var Errors = {
+  setDataWithBody: function(object) {
+    throw new Error("Attempt to set data attribute of a content object " +
+        "when the body attributes was already set.");
+  },
+  setBodyWithData: function(object) {
+    throw new Error("Attempt to set body attribute of a content object " +
+        "when the data attributes was already set.");
+  }
+}
+module.exports = Content;
+
+});
+
+require.define("/shred/mixins/headers.js", function (require, module, exports, __dirname, __filename) {
+    // The header mixins allow you to add HTTP header support to any object. This
+// might seem pointless: why not simply use a hash? The main reason is that, per
+// the [HTTP spec](http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2),
+// headers are case-insensitive. So, for example, `content-type` is the same as
+// `CONTENT-TYPE` which is the same as `Content-Type`. Since there is no way to
+// overload the index operator in Javascript, using a hash to represent the
+// headers means it's possible to have two conflicting values for a single
+// header.
+// 
+// The solution to this is to provide explicit methods to set or get headers.
+// This also has the benefit of allowing us to introduce additional variations,
+// including snake case, which we automatically convert to what Matthew King has
+// dubbed "corset case" - the hyphen-separated names with initial caps:
+// `Content-Type`. We use corset-case just in case we're dealing with servers
+// that haven't properly implemented the spec.
+
+// Convert headers to corset-case. **Example:** `CONTENT-TYPE` will be converted
+// to `Content-Type`.
+
+var corsetCase = function(string) {
+  return string.toLowerCase()
+      //.replace("_","-")
+      .replace(/(^|-)(\w)/g, 
+          function(s) { return s.toUpperCase(); });
+};
+
+// We suspect that `initializeHeaders` was once more complicated ...
+var initializeHeaders = function(object) {
+  return {};
+};
+
+// Access the `_headers` property using lazy initialization. **Warning:** If you
+// mix this into an object that is using the `_headers` property already, you're
+// going to have trouble.
+var $H = function(object) {
+  return object._headers||(object._headers=initializeHeaders(object));
+};
+
+// Hide the implementations as private functions, separate from how we expose them.
+
+// The "real" `getHeader` function: get the header after normalizing the name.
+var getHeader = function(object,name) {
+  return $H(object)[corsetCase(name)];
+};
+
+// The "real" `getHeader` function: get one or more headers, or all of them
+// if you don't ask for any specifics. 
+var getHeaders = function(object,names) {
+  var keys = (names && names.length>0) ? names : Object.keys($H(object));
+  var hash = keys.reduce(function(hash,key) {
+    hash[key] = getHeader(object,key);
+    return hash;
+  },{});
+  // Freeze the resulting hash so you don't mistakenly think you're modifying
+  // the real headers.
+  Object.freeze(hash);
+  return hash;
+};
+
+// The "real" `setHeader` function: set a header, after normalizing the name.
+var setHeader = function(object,name,value) {
+  $H(object)[corsetCase(name)] = value;
+  return object;
+};
+
+// The "real" `setHeaders` function: set multiple headers based on a hash.
+var setHeaders = function(object,hash) {
+  for( var key in hash ) { setHeader(object,key,hash[key]); };
+  return this;
+};
+
+// Here's where we actually bind the functionality to an object. These mixins work by
+// exposing mixin functions. Each function mixes in a specific batch of features.
+module.exports = {
+  
+  // Add getters.
+  getters: function(constructor) {
+    constructor.prototype.getHeader = function(name) { return getHeader(this,name); };
+    constructor.prototype.getHeaders = function() { return getHeaders(this,arguments); };
+  },
+  // Add setters but as "private" methods.
+  privateSetters: function(constructor) {
+    constructor.prototype._setHeader = function(key,value) { return setHeader(this,key,value); };
+    constructor.prototype._setHeaders = function(hash) { return setHeaders(this,hash); };
+  },
+  // Add setters.
+  setters: function(constructor) {
+    constructor.prototype.setHeader = function(key,value) { return setHeader(this,key,value); };
+    constructor.prototype.setHeaders = function(hash) { return setHeaders(this,hash); };
+  },
+  // Add both getters and setters.
+  gettersAndSetters: function(constructor) {
+    constructor.prototype.getHeader = function(name) { return getHeader(this,name); };
+    constructor.prototype.getHeaders = function() { return getHeaders(this,arguments); };
+    constructor.prototype.setHeader = function(key,value) { return setHeader(this,key,value); };
+    constructor.prototype.setHeaders = function(hash) { return setHeaders(this,hash); };
+  },
+};
+
+});
+
+require.define("/node_modules/iconv-lite/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {}
+});
+
+require.define("/node_modules/iconv-lite/index.js", function (require, module, exports, __dirname, __filename) {
+    // Module exports
+var iconv = module.exports = {
+    toEncoding: function(str, encoding) {
+        return iconv.getCodec(encoding).toEncoding(str);
+    },
+    fromEncoding: function(buf, encoding) {
+        return iconv.getCodec(encoding).fromEncoding(buf);
+    },
+    
+    defaultCharUnicode: '�',
+    defaultCharSingleByte: '?',
+    
+    // Get correct codec for given encoding.
+    getCodec: function(encoding) {
+        var enc = encoding || "utf8";
+        var codecOptions = undefined;
+        while (1) {
+            if (getType(enc) === "String")
+                enc = enc.replace(/[- ]/g, "").toLowerCase();
+            var codec = iconv.encodings[enc];
+            var type = getType(codec);
+            if (type === "String") {
+                // Link to other encoding.
+                codecOptions = {originalEncoding: enc};
+                enc = codec;
+            }
+            else if (type === "Object" && codec.type != undefined) {
+                // Options for other encoding.
+                codecOptions = codec;
+                enc = codec.type;
+            } 
+            else if (type === "Function")
+                // Codec itself.
+                return codec(codecOptions);
+            else
+                throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
+        }
+    },
+    
+    // Define basic encodings
+    encodings: {
+        internal: function(options) {
+            return {
+                toEncoding: function(str) {
+                    return new Buffer(ensureString(str), options.originalEncoding);
+                },
+                fromEncoding: function(buf) {
+                    return ensureBuffer(buf).toString(options.originalEncoding);
+                }
+            };
+        },
+        utf8: "internal",
+        ucs2: "internal",
+        binary: "internal",
+        ascii: "internal",
+        base64: "internal",
+        
+        // Codepage single-byte encodings.
+        singlebyte: function(options) {
+            // Prepare chars if needed
+            if (!options.chars || (options.chars.length !== 128 && options.chars.length !== 256))
+                throw new Error("Encoding '"+options.type+"' has incorrect 'chars' (must be of len 128 or 256)");
+            
+            if (options.chars.length === 128)
+                options.chars = asciiString + options.chars;
+            
+            if (!options.charsBuf) {
+                options.charsBuf = new Buffer(options.chars, 'ucs2');
+            }
+            
+            if (!options.revCharsBuf) {
+                options.revCharsBuf = new Buffer(65536);
+                var defChar = iconv.defaultCharSingleByte.charCodeAt(0);
+                for (var i = 0; i < options.revCharsBuf.length; i++)
+                    options.revCharsBuf[i] = defChar;
+                for (var i = 0; i < options.chars.length; i++)
+                    options.revCharsBuf[options.chars.charCodeAt(i)] = i;
+            }
+            
+            return {
+                toEncoding: function(str) {
+                    str = ensureString(str);
+                    
+                    var buf = new Buffer(str.length);
+                    var revCharsBuf = options.revCharsBuf;
+                    for (var i = 0; i < str.length; i++)
+                        buf[i] = revCharsBuf[str.charCodeAt(i)];
+                    
+                    return buf;
+                },
+                fromEncoding: function(buf) {
+                    buf = ensureBuffer(buf);
+                    
+                    // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
+                    var charsBuf = options.charsBuf;
+                    var newBuf = new Buffer(buf.length*2);
+                    var idx1 = 0, idx2 = 0;
+                    for (var i = 0, _len = buf.length; i < _len; i++) {
+                        idx1 = buf[i]*2; idx2 = i*2;
+                        newBuf[idx2] = charsBuf[idx1];
+                        newBuf[idx2+1] = charsBuf[idx1+1];
+                    }
+                    return newBuf.toString('ucs2');
+                }
+            };
+        },
+
+        // Codepage double-byte encodings.
+        table: function(options) {
+            var table = options.table, key, revCharsTable = options.revCharsTable;
+            if (!table) {
+                throw new Error("Encoding '" + options.type +"' has incorect 'table' option");
+            }
+            if(!revCharsTable) {
+                revCharsTable = options.revCharsTable = {};
+                for (key in table) {
+                    revCharsTable[table[key]] = parseInt(key);
+                }
+            }
+            
+            return {
+                toEncoding: function(str) {
+                    str = ensureString(str);
+                    var strLen = str.length;
+                    var bufLen = strLen;
+                    for (var i = 0; i < strLen; i++)
+                        if (str.charCodeAt(i) >> 7)
+                            bufLen++;
+
+                    var newBuf = new Buffer(bufLen), gbkcode, unicode, 
+                        defaultChar = revCharsTable[iconv.defaultCharUnicode.charCodeAt(0)];
+
+                    for (var i = 0, j = 0; i < strLen; i++) {
+                        unicode = str.charCodeAt(i);
+                        if (unicode >> 7) {
+                            gbkcode = revCharsTable[unicode] || defaultChar;
+                            newBuf[j++] = gbkcode >> 8; //high byte;
+                            newBuf[j++] = gbkcode & 0xFF; //low byte
+                        } else {//ascii
+                            newBuf[j++] = unicode;
+                        }
+                    }
+                    return newBuf;
+                },
+                fromEncoding: function(buf) {
+                    buf = ensureBuffer(buf);
+                    var bufLen = buf.length, strLen = 0;
+                    for (var i = 0; i < bufLen; i++) {
+                        strLen++;
+                        if (buf[i] & 0x80) //the high bit is 1, so this byte is gbkcode's high byte.skip next byte
+                            i++;
+                    }
+                    var newBuf = new Buffer(strLen*2), unicode, gbkcode,
+                        defaultChar = iconv.defaultCharUnicode.charCodeAt(0);
+                    
+                    for (var i = 0, j = 0; i < bufLen; i++, j+=2) {
+                        gbkcode = buf[i];
+                        if (gbkcode & 0x80) {
+                            gbkcode = (gbkcode << 8) + buf[++i];
+                            unicode = table[gbkcode] || defaultChar;
+                        } else {
+                            unicode = gbkcode;
+                        }
+                        newBuf[j] = unicode & 0xFF; //low byte
+                        newBuf[j+1] = unicode >> 8; //high byte
+                    }
+                    return newBuf.toString('ucs2');
+                }
+            }
+        }
+    }
+};
+
+// Add aliases to convert functions
+iconv.encode = iconv.toEncoding;
+iconv.decode = iconv.fromEncoding;
+
+// Load other encodings from files in /encodings dir.
+var encodingsDir = __dirname+"/encodings/",
+    fs = require('fs');
+fs.readdirSync(encodingsDir).forEach(function(file) {
+    if(fs.statSync(encodingsDir + file).isDirectory()) return;
+    var encodings = require(encodingsDir + file)
+    for (var key in encodings)
+        iconv.encodings[key] = encodings[key]
+});
+
+// Utilities
+var asciiString = '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f'+
+              ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f';
+
+var ensureBuffer = function(buf) {
+    buf = buf || new Buffer(0);
+    return (buf instanceof Buffer) ? buf : new Buffer(buf.toString(), "utf8");
+}
+
+var ensureString = function(str) {
+    str = str || "";
+    return (str instanceof String) ? str : str.toString((str instanceof Buffer) ? 'utf8' : undefined);
+}
+
+var getType = function(obj) {
+    return Object.prototype.toString.call(obj).slice(8, -1);
+}
+
+
+});
+
+require.define("/node_modules/http-browserify/package.json", function (require, module, exports, __dirname, __filename) {
+    module.exports = {"main":"index.js","browserify":"browser.js"}
+});
+
+require.define("/node_modules/http-browserify/browser.js", function (require, module, exports, __dirname, __filename) {
+    var http = module.exports;
+var EventEmitter = require('events').EventEmitter;
+var Request = require('./lib/request');
+
+http.request = function (params, cb) {
+    if (!params) params = {};
+    if (!params.host) params.host = window.location.host.split(':')[0];
+    if (!params.port) params.port = window.location.port;
+    
+    var req = new Request(new xhrHttp, params);
+    if (cb) req.on('response', cb);
+    return req;
+};
+
+http.get = function (params, cb) {
+    params.method = 'GET';
+    var req = http.request(params, cb);
+    req.end();
+    return req;
+};
+
+var xhrHttp = (function () {
+    if (typeof window === 'undefined') {
+        throw new Error('no window object present');
+    }
+    else if (window.XMLHttpRequest) {
+        return window.XMLHttpRequest;
+    }
+    else if (window.ActiveXObject) {
+        var axs = [
+            'Msxml2.XMLHTTP.6.0',
+            'Msxml2.XMLHTTP.3.0',
+            'Microsoft.XMLHTTP'
+        ];
+        for (var i = 0; i < axs.length; i++) {
+            try {
+                var ax = new(window.ActiveXObject)(axs[i]);
+                return function () {
+                    if (ax) {
+                        var ax_ = ax;
+                        ax = null;
+                        return ax_;
+                    }
+                    else {
+                        return new(window.ActiveXObject)(axs[i]);
+                    }
+                };
+            }
+            catch (e) {}
+        }
+        throw new Error('ajax not supported in this browser')
+    }
+    else {
+        throw new Error('ajax not supported in this browser');
+    }
+})();
+
+http.STATUS_CODES = {
+    100 : 'Continue',
+    101 : 'Switching Protocols',
+    102 : 'Processing', // RFC 2518, obsoleted by RFC 4918
+    200 : 'OK',
+    201 : 'Created',
+    202 : 'Accepted',
+    203 : 'Non-Authoritative Information',
+    204 : 'No Content',
+    205 : 'Reset Content',
+    206 : 'Partial Content',
+    207 : 'Multi-Status', // RFC 4918
+    300 : 'Multiple Choices',
+    301 : 'Moved Permanently',
+    302 : 'Moved Temporarily',
+    303 : 'See Other',
+    304 : 'Not Modified',
+    305 : 'Use Proxy',
+    307 : 'Temporary Redirect',
+    400 : 'Bad Request',
+    401 : 'Unauthorized',
+    402 : 'Payment Required',
+    403 : 'Forbidden',
+    404 : 'Not Found',
+    405 : 'Method Not Allowed',
+    406 : 'Not Acceptable',
+    407 : 'Proxy Authentication Required',
+    408 : 'Request Time-out',
+    409 : 'Conflict',
+    410 : 'Gone',
+    411 : 'Length Required',
+    412 : 'Precondition Failed',
+    413 : 'Request Entity Too Large',
+    414 : 'Request-URI Too Large',
+    415 : 'Unsupported Media Type',
+    416 : 'Requested Range Not Satisfiable',
+    417 : 'Expectation Failed',
+    418 : 'I\'m a teapot', // RFC 2324
+    422 : 'Unprocessable Entity', // RFC 4918
+    423 : 'Locked', // RFC 4918
+    424 : 'Failed Dependency', // RFC 4918
+    425 : 'Unordered Collection', // RFC 4918
+    426 : 'Upgrade Required', // RFC 2817
+    500 : 'Internal Server Error',
+    501 : 'Not Implemented',
+    502 : 'Bad Gateway',
+    503 : 'Service Unavailable',
+    504 : 'Gateway Time-out',
+    505 : 'HTTP Version not supported',
+    506 : 'Variant Also Negotiates', // RFC 2295
+    507 : 'Insufficient Storage', // RFC 4918
+    509 : 'Bandwidth Limit Exceeded',
+    510 : 'Not Extended' // RFC 2774
+};
+
+});
+
+require.define("/node_modules/http-browserify/lib/request.js", function (require, module, exports, __dirname, __filename) {
+    var EventEmitter = require('events').EventEmitter;
+var Response = require('./response');
+var isSafeHeader = require('./isSafeHeader');
+
+var Request = module.exports = function (xhr, params) {
+    var self = this;
+    self.xhr = xhr;
+    self.body = '';
+    
+    var uri = params.host + ':' + params.port + (params.path || '/');
+    
+    xhr.open(
+        params.method || 'GET',
+        (params.scheme || 'http') + '://' + uri,
+        true
+    );
+    
+    if (params.headers) {
+        Object.keys(params.headers).forEach(function (key) {
+            if (!isSafeHeader(key)) return;
+            var value = params.headers[key];
+            if (Array.isArray(value)) {
+                value.forEach(function (v) {
+                    xhr.setRequestHeader(key, v);
+                });
+            }
+            else xhr.setRequestHeader(key, value)
+        });
+    }
+    
+    var res = new Response(xhr);
+    res.on('ready', function () {
+        self.emit('response', res);
+    });
+    
+    xhr.onreadystatechange = function () {
+        res.handle(xhr);
+    };
+};
+
+Request.prototype = new EventEmitter;
+
+Request.prototype.setHeader = function (key, value) {
+    if ((Array.isArray && Array.isArray(value))
+    || value instanceof Array) {
+        for (var i = 0; i < value.length; i++) {
+            this.xhr.setRequestHeader(key, value[i]);
+        }
+    }
+    else {
+        this.xhr.setRequestHeader(key, value);
+    }
+};
+
+Request.prototype.write = function (s) {
+    this.body += s;
+};
+
+Request.prototype.end = function (s) {
+    if (s !== undefined) this.write(s);
+    this.xhr.send(this.body);
+};
+
+});
+
+require.define("/node_modules/http-browserify/lib/response.js", function (require, module, exports, __dirname, __filename) {
+    var EventEmitter = require('events').EventEmitter;
+var isSafeHeader = require('./isSafeHeader');
+
+var Response = module.exports = function (xhr) {
+    this.xhr = xhr;
+    this.offset = 0;
+};
+
+Response.prototype = new EventEmitter;
+
+var capable = {
+    streaming : true,
+    status2 : true
+};
+
+function parseHeaders (xhr) {
+    var lines = xhr.getAllResponseHeaders().split(/\r?\n/);
+    var headers = {};
+    for (var i = 0; i < lines.length; i++) {
+        var line = lines[i];
+        if (line === '') continue;
+        
+        var m = line.match(/^([^:]+):\s*(.*)/);
+        if (m) {
+            var key = m[1].toLowerCase(), value = m[2];
+            
+            if (headers[key] !== undefined) {
+                if ((Array.isArray && Array.isArray(headers[key]))
+                || headers[key] instanceof Array) {
+                    headers[key].push(value);
+                }
+                else {
+                    headers[key] = [ headers[key], value ];
+                }
+            }
+            else {
+                headers[key] = value;
+            }
+        }
+        else {
+            headers[line] = true;
+        }
+    }
+    return headers;
+}
+
+Response.prototype.getHeader = function (key) {
+    var header = this.headers ? this.headers[key.toLowerCase()] : null;
+    if (header) return header;
+
+    // Work around Mozilla bug #608735 [https://bugzil.la/608735], which causes
+    // getAllResponseHeaders() to return {} if the response is a CORS request.
+    // xhr.getHeader still works correctly.
+    if (isSafeHeader(key)) {
+      return this.xhr.getResponseHeader(key);
+    }
+    return null;
+};
+
+Response.prototype.handle = function () {
+    var xhr = this.xhr;
+    if (xhr.readyState === 2 && capable.status2) {
+        try {
+            this.statusCode = xhr.status;
+            this.headers = parseHeaders(xhr);
+        }
+        catch (err) {
+            capable.status2 = false;
+        }
+        
+        if (capable.status2) {
+            this.emit('ready');
+        }
+    }
+    else if (capable.streaming && xhr.readyState === 3) {
+        try {
+            if (!this.statusCode) {
+                this.statusCode = xhr.status;
+                this.headers = parseHeaders(xhr);
+                this.emit('ready');
+            }
+        }
+        catch (err) {}
+        
+        try {
+            this.write();
+        }
+        catch (err) {
+            capable.streaming = false;
+        }
+    }
+    else if (xhr.readyState === 4) {
+        if (!this.statusCode) {
+            this.statusCode = xhr.status;
+            this.emit('ready');
+        }
+        this.write();
+        
+        if (xhr.error) {
+            this.emit('error', xhr.responseText);
+        }
+        else this.emit('end');
+    }
+};
+
+Response.prototype.write = function () {
+    var xhr = this.xhr;
+    if (xhr.responseText.length > this.offset) {
+        this.emit('data', xhr.responseText.slice(this.offset));
+        this.offset = xhr.responseText.length;
+    }
+};
+
+});
+
+require.define("/node_modules/http-browserify/lib/isSafeHeader.js", function (require, module, exports, __dirname, __filename) {
+    // Taken from http://dxr.mozilla.org/mozilla/mozilla-central/content/base/src/nsXMLHttpRequest.cpp.html
+var unsafeHeaders = [
+    "accept-charset",
+    "accept-encoding",
+    "access-control-request-headers",
+    "access-control-request-method",
+    "connection",
+    "content-length",
+    "cookie",
+    "cookie2",
+    "content-transfer-encoding",
+    "date",
+    "expect",
+    "host",
+    "keep-alive",
+    "origin",
+    "referer",
+    "set-cookie",
+    "te",
+    "trailer",
+    "transfer-encoding",
+    "upgrade",
+    "user-agent",
+    "via"
+];
+
+module.exports = function (headerName) {
+    if (!headerName) return false;
+    return (unsafeHeaders.indexOf(headerName.toLowerCase()) === -1)
+};
+
+});
+
+require.alias("http-browserify", "/node_modules/http");
+
+require.alias("http-browserify", "/node_modules/https");
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/shred/content.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/shred/content.js
new file mode 100644 (file)
index 0000000..b8051fe
--- /dev/null
@@ -0,0 +1,193 @@
+
+// The purpose of the `Content` object is to abstract away the data conversions
+// to and from raw content entities as strings. For example, you want to be able
+// to pass in a Javascript object and have it be automatically converted into a
+// JSON string if the `content-type` is set to a JSON-based media type.
+// Conversely, you want to be able to transparently get back a Javascript object
+// in the response if the `content-type` is a JSON-based media-type.
+
+// One limitation of the current implementation is that it [assumes the `charset` is UTF-8](https://github.com/spire-io/shred/issues/5).
+
+// The `Content` constructor takes an options object, which *must* have either a
+// `body` or `data` property and *may* have a `type` property indicating the
+// media type. If there is no `type` attribute, a default will be inferred.
+var Content = function(options) {
+  this.body = options.body;
+  this.data = options.data;
+  this.type = options.type;
+};
+
+Content.prototype = {
+  // Treat `toString()` as asking for the `content.body`. That is, the raw content entity.
+  //
+  //     toString: function() { return this.body; }
+  //
+  // Commented out, but I've forgotten why. :/
+};
+
+
+// `Content` objects have the following attributes:
+Object.defineProperties(Content.prototype,{
+  
+// - **type**. Typically accessed as `content.type`, reflects the `content-type`
+//   header associated with the request or response. If not passed as an options
+//   to the constructor or set explicitly, it will infer the type the `data`
+//   attribute, if possible, and, failing that, will default to `text/plain`.
+  type: {
+    get: function() {
+      if (this._type) {
+        return this._type;
+      } else {
+        if (this._data) {
+          switch(typeof this._data) {
+            case "string": return "text/plain";
+            case "object": return "application/json";
+          }
+        }
+      }
+      return "text/plain";
+    },
+    set: function(value) {
+      this._type = value;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **data**. Typically accessed as `content.data`, reflects the content entity
+//   converted into Javascript data. This can be a string, if the `type` is, say,
+//   `text/plain`, but can also be a Javascript object. The conversion applied is
+//   based on the `processor` attribute. The `data` attribute can also be set
+//   directly, in which case the conversion will be done the other way, to infer
+//   the `body` attribute.
+  data: {
+    get: function() {
+      if (this._body) {
+        return this.processor.parser(this._body);
+      } else {
+        return this._data;
+      }
+    },
+    set: function(data) {
+      if (this._body&&data) Errors.setDataWithBody(this);
+      this._data = data;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **body**. Typically accessed as `content.body`, reflects the content entity
+//   as a UTF-8 string. It is the mirror of the `data` attribute. If you set the
+//   `data` attribute, the `body` attribute will be inferred and vice-versa. If
+//   you attempt to set both, an exception is raised.
+  body: {
+    get: function() {
+      if (this._data) {
+        return this.processor.stringify(this._data);
+      } else {
+        return this._body.toString();
+      }
+    },
+    set: function(body) {
+      if (this._data&&body) Errors.setBodyWithData(this);
+      this._body = body;
+      return this;
+    },
+    enumerable: true
+  },
+
+// - **processor**. The functions that will be used to convert to/from `data` and
+//   `body` attributes. You can add processors. The two that are built-in are for
+//   `text/plain`, which is basically an identity transformation and
+//   `application/json` and other JSON-based media types (including custom media
+//   types with `+json`). You can add your own processors. See below.
+  processor: {
+    get: function() {
+      var processor = Content.processors[this.type];
+      if (processor) {
+        return processor;
+      } else {
+        // Return the first processor that matches any part of the
+        // content type. ex: application/vnd.foobar.baz+json will match json.
+        var main = this.type.split(";")[0];
+        var parts = main.split(/\+|\//);
+        for (var i=0, l=parts.length; i < l; i++) {
+          processor = Content.processors[parts[i]]
+        }
+        return processor || {parser:identity,stringify:toString};
+      }
+    },
+    enumerable: true
+  },
+
+// - **length**. Typically accessed as `content.length`, returns the length in
+//   bytes of the raw content entity.
+  length: {
+    get: function() {
+      if (typeof Buffer !== 'undefined') {
+        return Buffer.byteLength(this.body);
+      }
+      return this.body.length;
+    }
+  }
+});
+
+Content.processors = {};
+
+// The `registerProcessor` function allows you to add your own processors to
+// convert content entities. Each processor consists of a Javascript object with
+// two properties:
+// - **parser**. The function used to parse a raw content entity and convert it
+//   into a Javascript data type.
+// - **stringify**. The function used to convert a Javascript data type into a
+//   raw content entity.
+Content.registerProcessor = function(types,processor) {
+  
+// You can pass an array of types that will trigger this processor, or just one.
+// We determine the array via duck-typing here.
+  if (types.forEach) {
+    types.forEach(function(type) {
+      Content.processors[type] = processor;
+    });
+  } else {
+    // If you didn't pass an array, we just use what you pass in.
+    Content.processors[types] = processor;
+  }
+};
+
+// Register the identity processor, which is used for text-based media types.
+var identity = function(x) { return x; }
+  , toString = function(x) { return x.toString(); }
+Content.registerProcessor(
+  ["text/html","text/plain","text"],
+  { parser: identity, stringify: toString });
+
+// Register the JSON processor, which is used for JSON-based media types.
+Content.registerProcessor(
+  ["application/json; charset=utf-8","application/json","json"],
+  {
+    parser: function(string) {
+      return JSON.parse(string);
+    },
+    stringify: function(data) {
+      return JSON.stringify(data); }});
+
+var qs = require('querystring');
+// Register the post processor, which is used for JSON-based media types.
+Content.registerProcessor(
+  ["application/x-www-form-urlencoded"],
+  { parser : qs.parse, stringify : qs.stringify });
+
+// Error functions are defined separately here in an attempt to make the code
+// easier to read.
+var Errors = {
+  setDataWithBody: function(object) {
+    throw new Error("Attempt to set data attribute of a content object " +
+        "when the body attributes was already set.");
+  },
+  setBodyWithData: function(object) {
+    throw new Error("Attempt to set body attribute of a content object " +
+        "when the data attributes was already set.");
+  }
+}
+module.exports = Content;
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/swagger.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/swagger.js
new file mode 100644 (file)
index 0000000..e45e62f
--- /dev/null
@@ -0,0 +1,1244 @@
+// Generated by CoffeeScript 1.6.3
+(function() {
+  var ApiKeyAuthorization, PasswordAuthorization, SwaggerApi, SwaggerAuthorizations, SwaggerHttp, SwaggerModel, SwaggerModelProperty, SwaggerOperation, SwaggerRequest, SwaggerResource,
+    __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+
+  SwaggerApi = (function() {
+    SwaggerApi.prototype.url = "http://api.wordnik.com/v4/resources.json";
+
+    SwaggerApi.prototype.debug = false;
+
+    SwaggerApi.prototype.basePath = null;
+
+    SwaggerApi.prototype.authorizations = null;
+
+    SwaggerApi.prototype.authorizationScheme = null;
+
+    SwaggerApi.prototype.info = null;
+
+    function SwaggerApi(url, options) {
+      if (options == null) {
+        options = {};
+      }
+      if (url) {
+        if (url.url) {
+          options = url;
+        } else {
+          this.url = url;
+        }
+      } else {
+        options = url;
+      }
+      if (options.url != null) {
+        this.url = options.url;
+      }
+      if (options.success != null) {
+        this.success = options.success;
+      }
+      this.failure = options.failure != null ? options.failure : function() {};
+      this.progress = options.progress != null ? options.progress : function() {};
+      if (options.success != null) {
+        this.build();
+      }
+    }
+
+    SwaggerApi.prototype.build = function() {
+      var e, obj,
+        _this = this;
+      this.progress('fetching resource list: ' + this.url);
+      obj = {
+        url: this.url,
+        method: "get",
+        headers: {},
+        on: {
+          error: function(response) {
+            if (_this.url.substring(0, 4) !== 'http') {
+              return _this.fail('Please specify the protocol for ' + _this.url);
+            } else if (response.status === 0) {
+              return _this.fail('Can\'t read from server.  It may not have the appropriate access-control-origin settings.');
+            } else if (response.status === 404) {
+              return _this.fail('Can\'t read swagger JSON from ' + _this.url);
+            } else {
+              return _this.fail(response.status + ' : ' + response.statusText + ' ' + _this.url);
+            }
+          },
+          response: function(rawResponse) {
+            var response;
+            response = JSON.parse(rawResponse.content.data);
+            _this.swaggerVersion = response.swaggerVersion;
+            if (_this.swaggerVersion === "1.2") {
+              return _this.buildFromSpec(response);
+            } else {
+              return _this.buildFrom1_1Spec(response);
+            }
+          }
+        }
+      };
+      e = {};
+      if (typeof window !== 'undefined') {
+        e = window;
+      } else {
+        e = exports;
+      }
+      e.authorizations.apply(obj);
+      new SwaggerHttp().execute(obj);
+      return this;
+    };
+
+    SwaggerApi.prototype.buildFromSpec = function(response) {
+      var api, isApi, newName, operation, res, resource, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2;
+      if (response.apiVersion != null) {
+        this.apiVersion = response.apiVersion;
+      }
+      this.apis = {};
+      this.apisArray = [];
+      this.produces = response.produces;
+      this.authSchemes = response.authorizations;
+      if (response.info != null) {
+        this.info = response.info;
+      }
+      isApi = false;
+      _ref = response.apis;
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        api = _ref[_i];
+        if (api.operations) {
+          _ref1 = api.operations;
+          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
+            operation = _ref1[_j];
+            isApi = true;
+          }
+        }
+      }
+      if (response.basePath) {
+        this.basePath = response.basePath;
+      } else if (this.url.indexOf('?') > 0) {
+        this.basePath = this.url.substring(0, this.url.lastIndexOf('?'));
+      } else {
+        this.basePath = this.url;
+      }
+      if (isApi) {
+        newName = response.resourcePath.replace(/\//g, '');
+        this.resourcePath = response.resourcePath;
+        res = new SwaggerResource(response, this);
+        this.apis[newName] = res;
+        this.apisArray.push(res);
+      } else {
+        _ref2 = response.apis;
+        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {
+          resource = _ref2[_k];
+          res = new SwaggerResource(resource, this);
+          this.apis[res.name] = res;
+          this.apisArray.push(res);
+        }
+      }
+      if (this.success) {
+        this.success();
+      }
+      return this;
+    };
+
+    SwaggerApi.prototype.buildFrom1_1Spec = function(response) {
+      var api, isApi, newName, operation, res, resource, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2;
+      console.log("This API is using a deprecated version of Swagger!  Please see http://github.com/wordnik/swagger-core/wiki for more info");
+      if (response.apiVersion != null) {
+        this.apiVersion = response.apiVersion;
+      }
+      this.apis = {};
+      this.apisArray = [];
+      this.produces = response.produces;
+      if (response.info != null) {
+        this.info = response.info;
+      }
+      isApi = false;
+      _ref = response.apis;
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        api = _ref[_i];
+        if (api.operations) {
+          _ref1 = api.operations;
+          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
+            operation = _ref1[_j];
+            isApi = true;
+          }
+        }
+      }
+      if (response.basePath) {
+        this.basePath = response.basePath;
+      } else if (this.url.indexOf('?') > 0) {
+        this.basePath = this.url.substring(0, this.url.lastIndexOf('?'));
+      } else {
+        this.basePath = this.url;
+      }
+      if (isApi) {
+        newName = response.resourcePath.replace(/\//g, '');
+        this.resourcePath = response.resourcePath;
+        res = new SwaggerResource(response, this);
+        this.apis[newName] = res;
+        this.apisArray.push(res);
+      } else {
+        _ref2 = response.apis;
+        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {
+          resource = _ref2[_k];
+          res = new SwaggerResource(resource, this);
+          this.apis[res.name] = res;
+          this.apisArray.push(res);
+        }
+      }
+      if (this.success) {
+        this.success();
+      }
+      return this;
+    };
+
+    SwaggerApi.prototype.selfReflect = function() {
+      var resource, resource_name, _ref;
+      if (this.apis == null) {
+        return false;
+      }
+      _ref = this.apis;
+      for (resource_name in _ref) {
+        resource = _ref[resource_name];
+        if (resource.ready == null) {
+          return false;
+        }
+      }
+      this.setConsolidatedModels();
+      this.ready = true;
+      if (this.success != null) {
+        return this.success();
+      }
+    };
+
+    SwaggerApi.prototype.fail = function(message) {
+      this.failure(message);
+      throw message;
+    };
+
+    SwaggerApi.prototype.setConsolidatedModels = function() {
+      var model, modelName, resource, resource_name, _i, _len, _ref, _ref1, _results;
+      this.modelsArray = [];
+      this.models = {};
+      _ref = this.apis;
+      for (resource_name in _ref) {
+        resource = _ref[resource_name];
+        for (modelName in resource.models) {
+          if (this.models[modelName] == null) {
+            this.models[modelName] = resource.models[modelName];
+            this.modelsArray.push(resource.models[modelName]);
+          }
+        }
+      }
+      _ref1 = this.modelsArray;
+      _results = [];
+      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+        model = _ref1[_i];
+        _results.push(model.setReferencedModels(this.models));
+      }
+      return _results;
+    };
+
+    SwaggerApi.prototype.help = function() {
+      var operation, operation_name, parameter, resource, resource_name, _i, _len, _ref, _ref1, _ref2;
+      _ref = this.apis;
+      for (resource_name in _ref) {
+        resource = _ref[resource_name];
+        console.log(resource_name);
+        _ref1 = resource.operations;
+        for (operation_name in _ref1) {
+          operation = _ref1[operation_name];
+          console.log("  " + operation.nickname);
+          _ref2 = operation.parameters;
+          for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
+            parameter = _ref2[_i];
+            console.log("    " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description);
+          }
+        }
+      }
+      return this;
+    };
+
+    return SwaggerApi;
+
+  })();
+
+  SwaggerResource = (function() {
+    SwaggerResource.prototype.api = null;
+
+    SwaggerResource.prototype.produces = null;
+
+    SwaggerResource.prototype.consumes = null;
+
+    function SwaggerResource(resourceObj, api) {
+      var consumes, e, obj, parts, produces,
+        _this = this;
+      this.api = api;
+      this.api = this.api;
+      produces = [];
+      consumes = [];
+      this.path = this.api.resourcePath != null ? this.api.resourcePath : resourceObj.path;
+      this.description = resourceObj.description;
+      parts = this.path.split("/");
+      this.name = parts[parts.length - 1].replace('.{format}', '');
+      this.basePath = this.api.basePath;
+      this.operations = {};
+      this.operationsArray = [];
+      this.modelsArray = [];
+      this.models = {};
+      if ((resourceObj.apis != null) && (this.api.resourcePath != null)) {
+        this.addApiDeclaration(resourceObj);
+      } else {
+        if (this.path == null) {
+          this.api.fail("SwaggerResources must have a path.");
+        }
+        if (this.path.substring(0, 4) === 'http') {
+          this.url = this.path.replace('{format}', 'json');
+        } else {
+          this.url = this.api.basePath + this.path.replace('{format}', 'json');
+        }
+        this.api.progress('fetching resource ' + this.name + ': ' + this.url);
+        obj = {
+          url: this.url,
+          method: "get",
+          headers: {},
+          on: {
+            error: function(response) {
+              return _this.api.fail("Unable to read api '" + _this.name + "' from path " + _this.url + " (server returned " + response.statusText + ")");
+            },
+            response: function(rawResponse) {
+              var response;
+              response = JSON.parse(rawResponse.content.data);
+              return _this.addApiDeclaration(response);
+            }
+          }
+        };
+        e = {};
+        if (typeof window !== 'undefined') {
+          e = window;
+        } else {
+          e = exports;
+        }
+        e.authorizations.apply(obj);
+        new SwaggerHttp().execute(obj);
+      }
+    }
+
+    SwaggerResource.prototype.addApiDeclaration = function(response) {
+      var endpoint, _i, _len, _ref;
+      if (response.produces != null) {
+        this.produces = response.produces;
+      }
+      if (response.consumes != null) {
+        this.consumes = response.consumes;
+      }
+      if ((response.basePath != null) && response.basePath.replace(/\s/g, '').length > 0) {
+        this.basePath = response.basePath;
+      }
+      this.addModels(response.models);
+      if (response.apis) {
+        _ref = response.apis;
+        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+          endpoint = _ref[_i];
+          this.addOperations(endpoint.path, endpoint.operations, response.consumes, response.produces);
+        }
+      }
+      this.api[this.name] = this;
+      this.ready = true;
+      return this.api.selfReflect();
+    };
+
+    SwaggerResource.prototype.addModels = function(models) {
+      var model, modelName, swaggerModel, _i, _len, _ref, _results;
+      if (models != null) {
+        for (modelName in models) {
+          if (this.models[modelName] == null) {
+            swaggerModel = new SwaggerModel(modelName, models[modelName]);
+            this.modelsArray.push(swaggerModel);
+            this.models[modelName] = swaggerModel;
+          }
+        }
+        _ref = this.modelsArray;
+        _results = [];
+        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+          model = _ref[_i];
+          _results.push(model.setReferencedModels(this.models));
+        }
+        return _results;
+      }
+    };
+
+    SwaggerResource.prototype.addOperations = function(resource_path, ops, consumes, produces) {
+      var method, o, op, r, ref, responseMessages, type, _i, _j, _len, _len1, _results;
+      if (ops) {
+        _results = [];
+        for (_i = 0, _len = ops.length; _i < _len; _i++) {
+          o = ops[_i];
+          consumes = this.consumes;
+          produces = this.produces;
+          if (o.consumes != null) {
+            consumes = o.consumes;
+          } else {
+            consumes = this.consumes;
+          }
+          if (o.produces != null) {
+            produces = o.produces;
+          } else {
+            produces = this.produces;
+          }
+          type = o.type || o.responseClass;
+          if (type === "array") {
+            ref = null;
+            if (o.items) {
+              ref = o.items["type"] || o.items["$ref"];
+            }
+            type = "array[" + ref + "]";
+          }
+          responseMessages = o.responseMessages;
+          method = o.method;
+          if (o.httpMethod) {
+            method = o.httpMethod;
+          }
+          if (o.supportedContentTypes) {
+            consumes = o.supportedContentTypes;
+          }
+          if (o.errorResponses) {
+            responseMessages = o.errorResponses;
+            for (_j = 0, _len1 = responseMessages.length; _j < _len1; _j++) {
+              r = responseMessages[_j];
+              r.message = r.reason;
+              r.reason = null;
+            }
+          }
+          o.nickname = this.sanitize(o.nickname);
+          op = new SwaggerOperation(o.nickname, resource_path, method, o.parameters, o.summary, o.notes, type, responseMessages, this, consumes, produces);
+          this.operations[op.nickname] = op;
+          _results.push(this.operationsArray.push(op));
+        }
+        return _results;
+      }
+    };
+
+    SwaggerResource.prototype.sanitize = function(nickname) {
+      var op;
+      op = nickname.replace(/[\s!@#$%^&*()_+=\[{\]};:<>|./?,\\'""-]/g, '_');
+      op = op.replace(/((_){2,})/g, '_');
+      op = op.replace(/^(_)*/g, '');
+      op = op.replace(/([_])*$/g, '');
+      return op;
+    };
+
+    SwaggerResource.prototype.help = function() {
+      var msg, operation, operation_name, parameter, _i, _len, _ref, _ref1, _results;
+      _ref = this.operations;
+      _results = [];
+      for (operation_name in _ref) {
+        operation = _ref[operation_name];
+        msg = "  " + operation.nickname;
+        _ref1 = operation.parameters;
+        for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+          parameter = _ref1[_i];
+          msg.concat("    " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description);
+        }
+        _results.push(msg);
+      }
+      return _results;
+    };
+
+    return SwaggerResource;
+
+  })();
+
+  SwaggerModel = (function() {
+    function SwaggerModel(modelName, obj) {
+      var prop, propertyName, value;
+      this.name = obj.id != null ? obj.id : modelName;
+      this.properties = [];
+      for (propertyName in obj.properties) {
+        if (obj.required != null) {
+          for (value in obj.required) {
+            if (propertyName === obj.required[value]) {
+              obj.properties[propertyName].required = true;
+            }
+          }
+        }
+        prop = new SwaggerModelProperty(propertyName, obj.properties[propertyName]);
+        this.properties.push(prop);
+      }
+    }
+
+    SwaggerModel.prototype.setReferencedModels = function(allModels) {
+      var prop, type, _i, _len, _ref, _results;
+      _ref = this.properties;
+      _results = [];
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        prop = _ref[_i];
+        type = prop.type || prop.dataType;
+        if (allModels[type] != null) {
+          _results.push(prop.refModel = allModels[type]);
+        } else if ((prop.refDataType != null) && (allModels[prop.refDataType] != null)) {
+          _results.push(prop.refModel = allModels[prop.refDataType]);
+        } else {
+          _results.push(void 0);
+        }
+      }
+      return _results;
+    };
+
+    SwaggerModel.prototype.getMockSignature = function(modelsToIgnore) {
+      var classClose, classOpen, prop, propertiesStr, returnVal, strong, strongClose, stronger, _i, _j, _len, _len1, _ref, _ref1;
+      propertiesStr = [];
+      _ref = this.properties;
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        prop = _ref[_i];
+        propertiesStr.push(prop.toString());
+      }
+      strong = '<span class="strong">';
+      stronger = '<span class="stronger">';
+      strongClose = '</span>';
+      classOpen = strong + this.name + ' {' + strongClose;
+      classClose = strong + '}' + strongClose;
+      returnVal = classOpen + '<div>' + propertiesStr.join(',</div><div>') + '</div>' + classClose;
+      if (!modelsToIgnore) {
+        modelsToIgnore = [];
+      }
+      modelsToIgnore.push(this);
+      _ref1 = this.properties;
+      for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
+        prop = _ref1[_j];
+        if ((prop.refModel != null) && (modelsToIgnore.indexOf(prop.refModel)) === -1) {
+          returnVal = returnVal + ('<br>' + prop.refModel.getMockSignature(modelsToIgnore));
+        }
+      }
+      return returnVal;
+    };
+
+    SwaggerModel.prototype.createJSONSample = function(modelsToIgnore) {
+      var prop, result, _i, _len, _ref;
+      result = {};
+      modelsToIgnore = modelsToIgnore || [];
+      modelsToIgnore.push(this.name);
+      _ref = this.properties;
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        prop = _ref[_i];
+        result[prop.name] = prop.getSampleValue(modelsToIgnore);
+      }
+      modelsToIgnore.pop(this.name);
+      return result;
+    };
+
+    return SwaggerModel;
+
+  })();
+
+  SwaggerModelProperty = (function() {
+    function SwaggerModelProperty(name, obj) {
+      this.name = name;
+      this.dataType = obj.type || obj.dataType || obj["$ref"];
+      this.isCollection = this.dataType && (this.dataType.toLowerCase() === 'array' || this.dataType.toLowerCase() === 'list' || this.dataType.toLowerCase() === 'set');
+      this.descr = obj.description;
+      this.required = obj.required;
+      if (obj.items != null) {
+        if (obj.items.type != null) {
+          this.refDataType = obj.items.type;
+        }
+        if (obj.items.$ref != null) {
+          this.refDataType = obj.items.$ref;
+        }
+      }
+      this.dataTypeWithRef = this.refDataType != null ? this.dataType + '[' + this.refDataType + ']' : this.dataType;
+      if (obj.allowableValues != null) {
+        this.valueType = obj.allowableValues.valueType;
+        this.values = obj.allowableValues.values;
+        if (this.values != null) {
+          this.valuesString = "'" + this.values.join("' or '") + "'";
+        }
+      }
+      if (obj["enum"] != null) {
+        this.valueType = "string";
+        this.values = obj["enum"];
+        if (this.values != null) {
+          this.valueString = "'" + this.values.join("' or '") + "'";
+        }
+      }
+    }
+
+    SwaggerModelProperty.prototype.getSampleValue = function(modelsToIgnore) {
+      var result;
+      if ((this.refModel != null) && (modelsToIgnore.indexOf(this.refModel.name) === -1)) {
+        result = this.refModel.createJSONSample(modelsToIgnore);
+      } else {
+        if (this.isCollection) {
+          result = this.refDataType;
+        } else {
+          result = this.dataType;
+        }
+      }
+      if (this.isCollection) {
+        return [result];
+      } else {
+        return result;
+      }
+    };
+
+    SwaggerModelProperty.prototype.toString = function() {
+      var req, str;
+      req = this.required ? 'propReq' : 'propOpt';
+      str = '<span class="propName ' + req + '">' + this.name + '</span> (<span class="propType">' + this.dataTypeWithRef + '</span>';
+      if (!this.required) {
+        str += ', <span class="propOptKey">optional</span>';
+      }
+      str += ')';
+      if (this.values != null) {
+        str += " = <span class='propVals'>['" + this.values.join("' or '") + "']</span>";
+      }
+      if (this.descr != null) {
+        str += ': <span class="propDesc">' + this.descr + '</span>';
+      }
+      return str;
+    };
+
+    return SwaggerModelProperty;
+
+  })();
+
+  SwaggerOperation = (function() {
+    function SwaggerOperation(nickname, path, method, parameters, summary, notes, type, responseMessages, resource, consumes, produces) {
+      var parameter, v, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3,
+        _this = this;
+      this.nickname = nickname;
+      this.path = path;
+      this.method = method;
+      this.parameters = parameters != null ? parameters : [];
+      this.summary = summary;
+      this.notes = notes;
+      this.type = type;
+      this.responseMessages = responseMessages;
+      this.resource = resource;
+      this.consumes = consumes;
+      this.produces = produces;
+      this["do"] = __bind(this["do"], this);
+      if (this.nickname == null) {
+        this.resource.api.fail("SwaggerOperations must have a nickname.");
+      }
+      if (this.path == null) {
+        this.resource.api.fail("SwaggerOperation " + nickname + " is missing path.");
+      }
+      if (this.method == null) {
+        this.resource.api.fail("SwaggerOperation " + nickname + " is missing method.");
+      }
+      this.path = this.path.replace('{format}', 'json');
+      this.method = this.method.toLowerCase();
+      this.isGetMethod = this.method === "get";
+      this.resourceName = this.resource.name;
+      if (((_ref = this.type) != null ? _ref.toLowerCase() : void 0) === 'void') {
+        this.type = void 0;
+      }
+      if (this.type != null) {
+        this.responseClassSignature = this.getSignature(this.type, this.resource.models);
+        this.responseSampleJSON = this.getSampleJSON(this.type, this.resource.models);
+      }
+      this.responseMessages = this.responseMessages || [];
+      _ref1 = this.parameters;
+      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
+        parameter = _ref1[_i];
+        parameter.name = parameter.name || parameter.type || parameter.dataType;
+        type = parameter.type || parameter.dataType;
+        if (type.toLowerCase() === 'boolean') {
+          parameter.allowableValues = {};
+          parameter.allowableValues.values = ["true", "false"];
+        }
+        parameter.signature = this.getSignature(type, this.resource.models);
+        parameter.sampleJSON = this.getSampleJSON(type, this.resource.models);
+        if (parameter["enum"] != null) {
+          parameter.isList = true;
+          parameter.allowableValues = {};
+          parameter.allowableValues.descriptiveValues = [];
+          _ref2 = parameter["enum"];
+          for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
+            v = _ref2[_j];
+            if ((parameter.defaultValue != null) && parameter.defaultValue === v) {
+              parameter.allowableValues.descriptiveValues.push({
+                value: v,
+                isDefault: true
+              });
+            } else {
+              parameter.allowableValues.descriptiveValues.push({
+                value: v,
+                isDefault: false
+              });
+            }
+          }
+        }
+        if (parameter.allowableValues != null) {
+          if (parameter.allowableValues.valueType === "RANGE") {
+            parameter.isRange = true;
+          } else {
+            parameter.isList = true;
+          }
+          if (parameter.allowableValues.values != null) {
+            parameter.allowableValues.descriptiveValues = [];
+            _ref3 = parameter.allowableValues.values;
+            for (_k = 0, _len2 = _ref3.length; _k < _len2; _k++) {
+              v = _ref3[_k];
+              if ((parameter.defaultValue != null) && parameter.defaultValue === v) {
+                parameter.allowableValues.descriptiveValues.push({
+                  value: v,
+                  isDefault: true
+                });
+              } else {
+                parameter.allowableValues.descriptiveValues.push({
+                  value: v,
+                  isDefault: false
+                });
+              }
+            }
+          }
+        }
+      }
+      this.resource[this.nickname] = function(args, callback, error) {
+        return _this["do"](args, callback, error);
+      };
+      this.resource[this.nickname].help = function() {
+        return _this.help();
+      };
+    }
+
+    SwaggerOperation.prototype.isListType = function(type) {
+      if (type.indexOf('[') >= 0) {
+        return type.substring(type.indexOf('[') + 1, type.indexOf(']'));
+      } else {
+        return void 0;
+      }
+    };
+
+    SwaggerOperation.prototype.getSignature = function(type, models) {
+      var isPrimitive, listType;
+      listType = this.isListType(type);
+      isPrimitive = ((listType != null) && models[listType]) || (models[type] != null) ? false : true;
+      if (isPrimitive) {
+        return type;
+      } else {
+        if (listType != null) {
+          return models[listType].getMockSignature();
+        } else {
+          return models[type].getMockSignature();
+        }
+      }
+    };
+
+    SwaggerOperation.prototype.getSampleJSON = function(type, models) {
+      var isPrimitive, listType, val;
+      listType = this.isListType(type);
+      isPrimitive = ((listType != null) && models[listType]) || (models[type] != null) ? false : true;
+      val = isPrimitive ? void 0 : (listType != null ? models[listType].createJSONSample() : models[type].createJSONSample());
+      if (val) {
+        val = listType ? [val] : val;
+        return JSON.stringify(val, null, 2);
+      }
+    };
+
+    SwaggerOperation.prototype["do"] = function(args, opts, callback, error) {
+      var key, param, params, possibleParams, req, requestContentType, responseContentType, value, _i, _len, _ref;
+      if (args == null) {
+        args = {};
+      }
+      if (opts == null) {
+        opts = {};
+      }
+      requestContentType = null;
+      responseContentType = null;
+      if ((typeof args) === "function") {
+        error = opts;
+        callback = args;
+        args = {};
+      }
+      if ((typeof opts) === "function") {
+        error = callback;
+        callback = opts;
+      }
+      if (error == null) {
+        error = function(xhr, textStatus, error) {
+          return console.log(xhr, textStatus, error);
+        };
+      }
+      if (callback == null) {
+        callback = function(data) {
+          var content;
+          content = null;
+          if (data.content != null) {
+            content = data.content.data;
+          } else {
+            content = "no data";
+          }
+          return console.log("default callback: " + content);
+        };
+      }
+      params = {};
+      params.headers = [];
+      if (args.headers != null) {
+        params.headers = args.headers;
+        delete args.headers;
+      }
+      _ref = this.parameters;
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        param = _ref[_i];
+        if (param.paramType === "header") {
+          if (args[param.name]) {
+            params.headers[param.name] = args[param.name];
+          }
+        }
+      }
+      if (args.body != null) {
+        params.body = args.body;
+        delete args.body;
+      }
+      possibleParams = (function() {
+        var _j, _len1, _ref1, _results;
+        _ref1 = this.parameters;
+        _results = [];
+        for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
+          param = _ref1[_j];
+          if (param.paramType === "form" || param.paramType.toLowerCase() === "file") {
+            _results.push(param);
+          }
+        }
+        return _results;
+      }).call(this);
+      if (possibleParams) {
+        for (key in possibleParams) {
+          value = possibleParams[key];
+          if (args[value.name]) {
+            params[value.name] = args[value.name];
+          }
+        }
+      }
+      req = new SwaggerRequest(this.method, this.urlify(args), params, opts, callback, error, this);
+      if (opts.mock != null) {
+        return req;
+      } else {
+        return true;
+      }
+    };
+
+    SwaggerOperation.prototype.pathJson = function() {
+      return this.path.replace("{format}", "json");
+    };
+
+    SwaggerOperation.prototype.pathXml = function() {
+      return this.path.replace("{format}", "xml");
+    };
+
+    SwaggerOperation.prototype.urlify = function(args) {
+      var param, queryParams, reg, url, _i, _j, _len, _len1, _ref, _ref1;
+      url = this.resource.basePath + this.pathJson();
+      _ref = this.parameters;
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        param = _ref[_i];
+        if (param.paramType === 'path') {
+          if (args[param.name]) {
+            reg = new RegExp('\{' + param.name + '[^\}]*\}', 'gi');
+            url = url.replace(reg, encodeURIComponent(args[param.name]));
+            delete args[param.name];
+          } else {
+            throw "" + param.name + " is a required path param.";
+          }
+        }
+      }
+      queryParams = "";
+      _ref1 = this.parameters;
+      for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
+        param = _ref1[_j];
+        if (param.paramType === 'query') {
+          if (args[param.name]) {
+            if (queryParams !== "") {
+              queryParams += "&";
+            }
+            queryParams += encodeURIComponent(param.name) + '=' + encodeURIComponent(args[param.name]);
+          }
+        }
+      }
+      if ((queryParams != null) && queryParams.length > 0) {
+        url += "?" + queryParams;
+      }
+      return url;
+    };
+
+    SwaggerOperation.prototype.supportHeaderParams = function() {
+      return this.resource.api.supportHeaderParams;
+    };
+
+    SwaggerOperation.prototype.supportedSubmitMethods = function() {
+      return this.resource.api.supportedSubmitMethods;
+    };
+
+    SwaggerOperation.prototype.getQueryParams = function(args) {
+      return this.getMatchingParams(['query'], args);
+    };
+
+    SwaggerOperation.prototype.getHeaderParams = function(args) {
+      return this.getMatchingParams(['header'], args);
+    };
+
+    SwaggerOperation.prototype.getMatchingParams = function(paramTypes, args) {
+      var matchingParams, name, param, value, _i, _len, _ref, _ref1;
+      matchingParams = {};
+      _ref = this.parameters;
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        param = _ref[_i];
+        if (args && args[param.name]) {
+          matchingParams[param.name] = args[param.name];
+        }
+      }
+      _ref1 = this.resource.api.headers;
+      for (name in _ref1) {
+        value = _ref1[name];
+        matchingParams[name] = value;
+      }
+      return matchingParams;
+    };
+
+    SwaggerOperation.prototype.help = function() {
+      var msg, parameter, _i, _len, _ref;
+      msg = "";
+      _ref = this.parameters;
+      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+        parameter = _ref[_i];
+        if (msg !== "") {
+          msg += "\n";
+        }
+        msg += "* " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description;
+      }
+      return msg;
+    };
+
+    return SwaggerOperation;
+
+  })();
+
+  SwaggerRequest = (function() {
+    function SwaggerRequest(type, url, params, opts, successCallback, errorCallback, operation, execution) {
+      var body, e, fields, headers, key, myHeaders, name, obj, param, parent, possibleParams, requestContentType, responseContentType, urlEncoded, value, values,
+        _this = this;
+      this.type = type;
+      this.url = url;
+      this.params = params;
+      this.opts = opts;
+      this.successCallback = successCallback;
+      this.errorCallback = errorCallback;
+      this.operation = operation;
+      this.execution = execution;
+      if (this.type == null) {
+        throw "SwaggerRequest type is required (get/post/put/delete).";
+      }
+      if (this.url == null) {
+        throw "SwaggerRequest url is required.";
+      }
+      if (this.successCallback == null) {
+        throw "SwaggerRequest successCallback is required.";
+      }
+      if (this.errorCallback == null) {
+        throw "SwaggerRequest error callback is required.";
+      }
+      if (this.operation == null) {
+        throw "SwaggerRequest operation is required.";
+      }
+      this.type = this.type.toUpperCase();
+      headers = params.headers;
+      myHeaders = {};
+      body = params.body;
+      parent = params["parent"];
+      requestContentType = "application/json";
+      if (body && (this.type === "POST" || this.type === "PUT" || this.type === "PATCH")) {
+        if (this.opts.requestContentType) {
+          requestContentType = this.opts.requestContentType;
+        }
+      } else {
+        if (((function() {
+          var _i, _len, _ref, _results;
+          _ref = this.operation.parameters;
+          _results = [];
+          for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+            param = _ref[_i];
+            if (param.paramType === "form") {
+              _results.push(param);
+            }
+          }
+          return _results;
+        }).call(this)).length > 0) {
+          type = param.type || param.dataType;
+          if (((function() {
+            var _i, _len, _ref, _results;
+            _ref = this.operation.parameters;
+            _results = [];
+            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+              param = _ref[_i];
+              if (type.toLowerCase() === "file") {
+                _results.push(param);
+              }
+            }
+            return _results;
+          }).call(this)).length > 0) {
+            requestContentType = "multipart/form-data";
+          } else {
+            requestContentType = "application/x-www-form-urlencoded";
+          }
+        } else if (this.type !== "DELETE") {
+          requestContentType = null;
+        }
+      }
+      if (requestContentType && this.operation.consumes) {
+        if (this.operation.consumes.indexOf(requestContentType) === -1) {
+          console.log("server doesn't consume " + requestContentType + ", try " + JSON.stringify(this.operation.consumes));
+          if (this.requestContentType === null) {
+            requestContentType = this.operation.consumes[0];
+          }
+        }
+      }
+      responseContentType = null;
+      if (this.type === "POST" || this.type === "GET" || this.type === "PATCH") {
+        if (this.opts.responseContentType) {
+          responseContentType = this.opts.responseContentType;
+        } else {
+          responseContentType = "application/json";
+        }
+      } else {
+        responseContentType = null;
+      }
+      if (responseContentType && this.operation.produces) {
+        if (this.operation.produces.indexOf(responseContentType) === -1) {
+          console.log("server can't produce " + responseContentType);
+        }
+      }
+      if (requestContentType && requestContentType.indexOf("application/x-www-form-urlencoded") === 0) {
+        fields = {};
+        possibleParams = (function() {
+          var _i, _len, _ref, _results;
+          _ref = this.operation.parameters;
+          _results = [];
+          for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+            param = _ref[_i];
+            if (param.paramType === "form") {
+              _results.push(param);
+            }
+          }
+          return _results;
+        }).call(this);
+        values = {};
+        for (key in possibleParams) {
+          value = possibleParams[key];
+          if (this.params[value.name]) {
+            values[value.name] = this.params[value.name];
+          }
+        }
+        urlEncoded = "";
+        for (key in values) {
+          value = values[key];
+          if (urlEncoded !== "") {
+            urlEncoded += "&";
+          }
+          urlEncoded += encodeURIComponent(key) + '=' + encodeURIComponent(value);
+        }
+        body = urlEncoded;
+      }
+      for (name in headers) {
+        myHeaders[name] = headers[name];
+      }
+      if (requestContentType) {
+        myHeaders["Content-Type"] = requestContentType;
+      }
+      if (responseContentType) {
+        myHeaders["Accept"] = responseContentType;
+      }
+      if (!((headers != null) && (headers.mock != null))) {
+        obj = {
+          url: this.url,
+          method: this.type,
+          headers: myHeaders,
+          body: body,
+          on: {
+            error: function(response) {
+              return _this.errorCallback(response, _this.opts.parent);
+            },
+            redirect: function(response) {
+              return _this.successCallback(response, _this.opts.parent);
+            },
+            307: function(response) {
+              return _this.successCallback(response, _this.opts.parent);
+            },
+            response: function(response) {
+              return _this.successCallback(response, _this.opts.parent);
+            }
+          }
+        };
+        e = {};
+        if (typeof window !== 'undefined') {
+          e = window;
+        } else {
+          e = exports;
+        }
+        e.authorizations.apply(obj);
+        if (opts.mock == null) {
+          new SwaggerHttp().execute(obj);
+        } else {
+          console.log(obj);
+          return obj;
+        }
+      }
+    }
+
+    SwaggerRequest.prototype.asCurl = function() {
+      var header_args, k, v;
+      header_args = (function() {
+        var _ref, _results;
+        _ref = this.headers;
+        _results = [];
+        for (k in _ref) {
+          v = _ref[k];
+          _results.push("--header \"" + k + ": " + v + "\"");
+        }
+        return _results;
+      }).call(this);
+      return "curl " + (header_args.join(" ")) + " " + this.url;
+    };
+
+    return SwaggerRequest;
+
+  })();
+
+  SwaggerHttp = (function() {
+    SwaggerHttp.prototype.Shred = null;
+
+    SwaggerHttp.prototype.shred = null;
+
+    SwaggerHttp.prototype.content = null;
+
+    function SwaggerHttp() {
+      var identity, toString,
+        _this = this;
+      if (typeof window !== 'undefined') {
+        this.Shred = require("./shred");
+      } else {
+        this.Shred = require("shred");
+      }
+      this.shred = new this.Shred();
+      identity = function(x) {
+        return x;
+      };
+      toString = function(x) {
+        return x.toString();
+      };
+      if (typeof window !== 'undefined') {
+        this.content = require("./shred/content");
+        this.content.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
+          parser: identity,
+          stringify: toString
+        });
+      } else {
+        this.Shred.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
+          parser: identity,
+          stringify: toString
+        });
+      }
+    }
+
+    SwaggerHttp.prototype.execute = function(obj) {
+      return this.shred.request(obj);
+    };
+
+    return SwaggerHttp;
+
+  })();
+
+  SwaggerAuthorizations = (function() {
+    SwaggerAuthorizations.prototype.authz = null;
+
+    function SwaggerAuthorizations() {
+      this.authz = {};
+    }
+
+    SwaggerAuthorizations.prototype.add = function(name, auth) {
+      this.authz[name] = auth;
+      return auth;
+    };
+
+    SwaggerAuthorizations.prototype.apply = function(obj) {
+      var key, value, _ref, _results;
+      _ref = this.authz;
+      _results = [];
+      for (key in _ref) {
+        value = _ref[key];
+        _results.push(value.apply(obj));
+      }
+      return _results;
+    };
+
+    return SwaggerAuthorizations;
+
+  })();
+
+  ApiKeyAuthorization = (function() {
+    ApiKeyAuthorization.prototype.type = null;
+
+    ApiKeyAuthorization.prototype.name = null;
+
+    ApiKeyAuthorization.prototype.value = null;
+
+    function ApiKeyAuthorization(name, value, type) {
+      this.name = name;
+      this.value = value;
+      this.type = type;
+    }
+
+    ApiKeyAuthorization.prototype.apply = function(obj) {
+      if (this.type === "query") {
+        if (obj.url.indexOf('?') > 0) {
+          obj.url = obj.url + "&" + this.name + "=" + this.value;
+        } else {
+          obj.url = obj.url + "?" + this.name + "=" + this.value;
+        }
+        return true;
+      } else if (this.type === "header") {
+        return obj.headers[this.name] = this.value;
+      }
+    };
+
+    return ApiKeyAuthorization;
+
+  })();
+
+  PasswordAuthorization = (function() {
+    PasswordAuthorization.prototype.name = null;
+
+    PasswordAuthorization.prototype.username = null;
+
+    PasswordAuthorization.prototype.password = null;
+
+    function PasswordAuthorization(name, username, password) {
+      this.name = name;
+      this.username = username;
+      this.password = password;
+    }
+
+    PasswordAuthorization.prototype.apply = function(obj) {
+      return obj.headers["Authorization"] = "Basic " + btoa(this.username + ":" + this.password);
+    };
+
+    return PasswordAuthorization;
+
+  })();
+
+  this.SwaggerApi = SwaggerApi;
+
+  this.SwaggerResource = SwaggerResource;
+
+  this.SwaggerOperation = SwaggerOperation;
+
+  this.SwaggerRequest = SwaggerRequest;
+
+  this.SwaggerModelProperty = SwaggerModelProperty;
+
+  this.ApiKeyAuthorization = ApiKeyAuthorization;
+
+  this.PasswordAuthorization = PasswordAuthorization;
+
+  this.authorizations = new SwaggerAuthorizations();
+
+}).call(this);
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/underscore-min.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/lib/underscore-min.js
new file mode 100644 (file)
index 0000000..5a0cb3b
--- /dev/null
@@ -0,0 +1,32 @@
+// Underscore.js 1.3.3
+// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
+// Underscore is freely distributable under the MIT license.
+// Portions of Underscore are inspired or borrowed from Prototype,
+// Oliver Steele's Functional, and John Resig's Micro-Templating.
+// For all details and documentation:
+// http://documentcloud.github.com/underscore
+(function(){function r(a,c,d){if(a===c)return 0!==a||1/a==1/c;if(null==a||null==c)return a===c;a._chain&&(a=a._wrapped);c._chain&&(c=c._wrapped);if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return!1;switch(e){case "[object String]":return a==""+c;case "[object Number]":return a!=+a?c!=+c:0==a?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
+c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if("object"!=typeof a||"object"!=typeof c)return!1;for(var f=d.length;f--;)if(d[f]==a)return!0;d.push(a);var f=0,g=!0;if("[object Array]"==e){if(f=a.length,g=f==c.length)for(;f--&&(g=f in a==f in c&&r(a[f],c[f],d)););}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return!1;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&r(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,h)&&!f--)break;
+g=!f}}d.pop();return g}var s=this,I=s._,o={},k=Array.prototype,p=Object.prototype,i=k.slice,J=k.unshift,l=p.toString,K=p.hasOwnProperty,y=k.forEach,z=k.map,A=k.reduce,B=k.reduceRight,C=k.filter,D=k.every,E=k.some,q=k.indexOf,F=k.lastIndexOf,p=Array.isArray,L=Object.keys,t=Function.prototype.bind,b=function(a){return new m(a)};"undefined"!==typeof exports?("undefined"!==typeof module&&module.exports&&(exports=module.exports=b),exports._=b):s._=b;b.VERSION="1.3.3";var j=b.each=b.forEach=function(a,
+c,d){if(a!=null)if(y&&a.forEach===y)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===o)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===o)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(z&&a.map===z)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(A&&
+a.reduce===A){e&&(c=b.bind(c,e));return f?a.reduce(c,d):a.reduce(c)}j(a,function(a,b,i){if(f)d=c.call(e,d,a,b,i);else{d=a;f=true}});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(B&&a.reduceRight===B){e&&(c=b.bind(c,e));return f?a.reduceRight(c,d):a.reduceRight(c)}var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=function(a,
+c,b){var e;G(a,function(a,g,h){if(c.call(b,a,g,h)){e=a;return true}});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(C&&a.filter===C)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(D&&a.every===D)return a.every(c,b);j(a,function(a,g,h){if(!(e=e&&c.call(b,
+a,g,h)))return o});return!!e};var G=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(E&&a.some===E)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return o});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;if(q&&a.indexOf===q)return a.indexOf(c)!=-1;return b=G(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
+function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&
+(e={value:a,computed:b})});return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){d=Math.floor(Math.random()*(f+1));b[f]=b[d];b[d]=a});return b};b.sortBy=function(a,c,d){var e=b.isFunction(c)?c:function(a){return a[c]};return b.pluck(b.map(a,function(a,b,c){return{value:a,criteria:e.call(d,a,b,c)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c===void 0?1:d===void 0?-1:c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};
+j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:b.isArray(a)||b.isArguments(a)?i.call(a):a.toArray&&b.isFunction(a.toArray)?a.toArray():b.values(a)};b.size=function(a){return b.isArray(a)?a.length:b.keys(a).length};b.first=b.head=b.take=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,
+0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,
+e=[];a.length<3&&(c=true);b.reduce(d,function(d,g,h){if(c?b.last(d)!==g||!d.length:!b.include(d,g)){d.push(g);e.push(a[h])}return d},[]);return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1),true);return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=
+i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d){d=b.sortedIndex(a,c);return a[d]===c?d:-1}if(q&&a.indexOf===q)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(F&&a.lastIndexOf===F)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){if(arguments.length<=
+1){b=a||0;a=0}for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;){g[f++]=a;a=a+d}return g};var H=function(){};b.bind=function(a,c){var d,e;if(a.bind===t&&t)return t.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));H.prototype=a.prototype;var b=new H,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=
+i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(null,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i,j=b.debounce(function(){h=
+g=false},c);return function(){d=this;e=arguments;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);j()},c));g?h=true:i=a.apply(d,e);j();g=true;return i}};b.debounce=function(a,b,d){var e;return function(){var f=this,g=arguments;d&&!e&&a.apply(f,g);clearTimeout(e);e=setTimeout(function(){e=null;d||a.apply(f,g)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));
+return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=L||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&
+c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.pick=function(a){var c={};j(b.flatten(i.call(arguments,1)),function(b){b in a&&(c[b]=a[b])});return c};b.defaults=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return r(a,b,[])};b.isEmpty=
+function(a){if(a==null)return true;if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=p||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=function(a){return l.call(a)=="[object Arguments]"};b.isArguments(arguments)||(b.isArguments=function(a){return!(!a||!b.has(a,"callee"))});b.isFunction=function(a){return l.call(a)=="[object Function]"};
+b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isFinite=function(a){return b.isNumber(a)&&isFinite(a)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,
+b){return K.call(a,b)};b.noConflict=function(){s._=I;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.result=function(a,c){if(a==null)return null;var d=a[c];return b.isFunction(d)?d.call(a):d};b.mixin=function(a){j(b.functions(a),function(c){M(c,b[c]=a[c])})};var N=0;b.uniqueId=
+function(a){var b=N++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var u=/.^/,n={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"},v;for(v in n)n[n[v]]=v;var O=/\\|'|\r|\n|\t|\u2028|\u2029/g,P=/\\(\\|'|r|n|t|u2028|u2029)/g,w=function(a){return a.replace(P,function(a,b){return n[b]})};b.template=function(a,c,d){d=b.defaults(d||{},b.templateSettings);a="__p+='"+a.replace(O,function(a){return"\\"+n[a]}).replace(d.escape||
+u,function(a,b){return"'+\n_.escape("+w(b)+")+\n'"}).replace(d.interpolate||u,function(a,b){return"'+\n("+w(b)+")+\n'"}).replace(d.evaluate||u,function(a,b){return"';\n"+w(b)+"\n;__p+='"})+"';\n";d.variable||(a="with(obj||{}){\n"+a+"}\n");var a="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+a+"return __p;\n",e=new Function(d.variable||"obj","_",a);if(c)return e(c,b);c=function(a){return e.call(this,a,b)};c.source="function("+(d.variable||"obj")+"){\n"+a+"}";return c};
+b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var x=function(a,c){return c?b(a).chain():a},M=function(a,c){m.prototype[a]=function(){var a=i.call(arguments);J.call(a,this._wrapped);return x(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return x(d,
+this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return x(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/swagger-ui.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/swagger-ui.js
new file mode 100644 (file)
index 0000000..56f284a
--- /dev/null
@@ -0,0 +1,2117 @@
+$(function() {\r
+\r
+       // Helper function for vertically aligning DOM elements\r
+       // http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/\r
+       $.fn.vAlign = function() {\r
+               return this.each(function(i){\r
+               var ah = $(this).height();\r
+               var ph = $(this).parent().height();\r
+               var mh = (ph - ah) / 2;\r
+               $(this).css('margin-top', mh);\r
+               });\r
+       };\r
+\r
+       $.fn.stretchFormtasticInputWidthToParent = function() {\r
+               return this.each(function(i){\r
+               var p_width = $(this).closest("form").innerWidth();\r
+               var p_padding = parseInt($(this).closest("form").css('padding-left') ,10) + parseInt($(this).closest("form").css('padding-right'), 10);\r
+               var this_padding = parseInt($(this).css('padding-left'), 10) + parseInt($(this).css('padding-right'), 10);\r
+               $(this).css('width', p_width - p_padding - this_padding);\r
+               });\r
+       };\r
+\r
+       $('form.formtastic li.string input, form.formtastic textarea').stretchFormtasticInputWidthToParent();\r
+\r
+       // Vertically center these paragraphs\r
+       // Parent may need a min-height for this to work..\r
+       $('ul.downplayed li div.content p').vAlign();\r
+\r
+       // When a sandbox form is submitted..\r
+       $("form.sandbox").submit(function(){\r
+\r
+               var error_free = true;\r
+\r
+               // Cycle through the forms required inputs\r
+               $(this).find("input.required").each(function() {\r
+\r
+                       // Remove any existing error styles from the input\r
+                       $(this).removeClass('error');\r
+\r
+                       // Tack the error style on if the input is empty..\r
+                       if ($(this).val() == '') {\r
+                               $(this).addClass('error');\r
+                               $(this).wiggle();\r
+                               error_free = false;\r
+                       }\r
+\r
+               });\r
+\r
+               return error_free;\r
+       });\r
+\r
+});\r
+\r
+function clippyCopiedCallback(a) {\r
+  $('#api_key_copied').fadeIn().delay(1000).fadeOut();\r
+\r
+  // var b = $("#clippy_tooltip_" + a);\r
+  // b.length != 0 && (b.attr("title", "copied!").trigger("tipsy.reload"), setTimeout(function() {\r
+  //   b.attr("title", "copy to clipboard")\r
+  // },\r
+  // 500))\r
+}\r
+\r
+// Logging function that accounts for browsers that don't have window.console\r
+function log() {\r
+  if (window.console) console.log.apply(console,arguments);\r
+}\r
+// Handle browsers that do console incorrectly (IE9 and below, see http://stackoverflow.com/a/5539378/7913)\r
+if (Function.prototype.bind && console && typeof console.log == "object") {\r
+    [\r
+      "log","info","warn","error","assert","dir","clear","profile","profileEnd"\r
+    ].forEach(function (method) {\r
+        console[method] = this.bind(console[method], console);\r
+    }, Function.prototype.call);\r
+}\r
+\r
+var Docs = {\r
+\r
+       shebang: function() {\r
+\r
+               // If shebang has an operation nickname in it..\r
+               // e.g. /docs/#!/words/get_search\r
+               var fragments = $.param.fragment().split('/');\r
+               fragments.shift(); // get rid of the bang\r
+\r
+               switch (fragments.length) {\r
+                       case 1:\r
+                               // Expand all operations for the resource and scroll to it\r
+//                             log('shebang resource:' + fragments[0]);\r
+                               var dom_id = 'resource_' + fragments[0];\r
+\r
+                               Docs.expandEndpointListForResource(fragments[0]);\r
+                               $("#"+dom_id).slideto({highlight: false});\r
+                               break;\r
+                       case 2:\r
+                               // Refer to the endpoint DOM element, e.g. #words_get_search\r
+//                             log('shebang endpoint: ' + fragments.join('_'));\r
+\r
+                // Expand Resource\r
+                Docs.expandEndpointListForResource(fragments[0]);\r
+                $("#"+dom_id).slideto({highlight: false});\r
+\r
+                // Expand operation\r
+                               var li_dom_id = fragments.join('_');\r
+                               var li_content_dom_id = li_dom_id + "_content";\r
+\r
+//                log("li_dom_id " + li_dom_id);\r
+//                log("li_content_dom_id " + li_content_dom_id);\r
+\r
+                               Docs.expandOperation($('#'+li_content_dom_id));\r
+                               $('#'+li_dom_id).slideto({highlight: false});\r
+                               break;\r
+               }\r
+\r
+       },\r
+\r
+       toggleEndpointListForResource: function(resource) {\r
+               var elem = $('li#resource_' + Docs.escapeResourceName(resource) + ' ul.endpoints');\r
+               if (elem.is(':visible')) {\r
+                       Docs.collapseEndpointListForResource(resource);\r
+               } else {\r
+                       Docs.expandEndpointListForResource(resource);\r
+               }\r
+       },\r
+\r
+       // Expand resource\r
+       expandEndpointListForResource: function(resource) {\r
+               var resource = Docs.escapeResourceName(resource);\r
+               if (resource == '') {\r
+                       $('.resource ul.endpoints').slideDown();\r
+                       return;\r
+               }\r
+               \r
+               $('li#resource_' + resource).addClass('active');\r
+\r
+               var elem = $('li#resource_' + resource + ' ul.endpoints');\r
+               elem.slideDown();\r
+       },\r
+\r
+       // Collapse resource and mark as explicitly closed\r
+       collapseEndpointListForResource: function(resource) {\r
+               var resource = Docs.escapeResourceName(resource);\r
+               $('li#resource_' + resource).removeClass('active');\r
+\r
+               var elem = $('li#resource_' + resource + ' ul.endpoints');\r
+               elem.slideUp();\r
+       },\r
+\r
+       expandOperationsForResource: function(resource) {\r
+               // Make sure the resource container is open..\r
+               Docs.expandEndpointListForResource(resource);\r
+               \r
+               if (resource == '') {\r
+                       $('.resource ul.endpoints li.operation div.content').slideDown();\r
+                       return;\r
+               }\r
+\r
+               $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() {\r
+                       Docs.expandOperation($(this));\r
+               });\r
+       },\r
+\r
+       collapseOperationsForResource: function(resource) {\r
+               // Make sure the resource container is open..\r
+               Docs.expandEndpointListForResource(resource);\r
+\r
+               $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() {\r
+                       Docs.collapseOperation($(this));\r
+               });\r
+       },\r
+\r
+       escapeResourceName: function(resource) {\r
+               return resource.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g, "\\$&");\r
+       },\r
+\r
+       expandOperation: function(elem) {\r
+               elem.slideDown();\r
+       },\r
+\r
+       collapseOperation: function(elem) {\r
+               elem.slideUp();\r
+       }\r
+\r
+};\r
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['content_type'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n  ";
+  stack1 = helpers.each.call(depth0, depth0.produces, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n";
+  return buffer;
+  }
+function program2(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        <option value=\"";
+  stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\">";
+  stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</option>\n       ";
+  return buffer;
+  }
+
+function program4(depth0,data) {
+  
+  
+  return "\n  <option value=\"application/json\">application/json</option>\n";
+  }
+
+  buffer += "<label for=\"contentType\"></label>\n<select name=\"contentType\">\n";
+  stack1 = helpers['if'].call(depth0, depth0.produces, {hash:{},inverse:self.program(4, program4, data),fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n</select>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['main'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1, stack2;
+  buffer += "\n    <div class=\"info_title\">"
+    + escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.title)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
+    + "</div>\n    <div class=\"info_description\">";
+  stack2 = ((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.description)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1);
+  if(stack2 || stack2 === 0) { buffer += stack2; }
+  buffer += "</div>\n    ";
+  stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.termsOfServiceUrl), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
+  if(stack2 || stack2 === 0) { buffer += stack2; }
+  buffer += "\n    ";
+  stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.contact), {hash:{},inverse:self.noop,fn:self.program(4, program4, data),data:data});
+  if(stack2 || stack2 === 0) { buffer += stack2; }
+  buffer += "\n    ";
+  stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.license), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
+  if(stack2 || stack2 === 0) { buffer += stack2; }
+  buffer += "\n  ";
+  return buffer;
+  }
+function program2(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "<div class=\"info_tos\"><a href=\""
+    + escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.termsOfServiceUrl)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
+    + "\">Terms of service</a></div>";
+  return buffer;
+  }
+
+function program4(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "<div class='info_contact'><a href=\"mailto:"
+    + escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.contact)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
+    + "\">Contact the developer</a></div>";
+  return buffer;
+  }
+
+function program6(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "<div class='info_license'><a href='"
+    + escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.licenseUrl)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
+    + "'>"
+    + escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.license)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
+    + "</a></div>";
+  return buffer;
+  }
+
+function program8(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        , <span style=\"font-variant: small-caps\">api version</span>: ";
+  if (stack1 = helpers.apiVersion) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.apiVersion; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "\n        ";
+  return buffer;
+  }
+
+  buffer += "<div class='info' id='api_info'>\n  ";
+  stack1 = helpers['if'].call(depth0, depth0.info, {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n</div>\n<div class='container' id='resources_container'>\n    <ul id='resources'>\n    </ul>\n\n    <div class=\"footer\">\n        <br>\n        <br>\n        <h4 style=\"color: #999\">[ <span style=\"font-variant: small-caps\">base url</span>: ";
+  if (stack1 = helpers.basePath) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.basePath; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "\n        ";
+  stack1 = helpers['if'].call(depth0, depth0.apiVersion, {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "]</h4>\n    </div>\n</div>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['operation'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        <h4>Implementation Notes</h4>\n        <p>";
+  if (stack1 = helpers.notes) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.notes; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</p>\n        ";
+  return buffer;
+  }
+
+function program3(depth0,data) {
+  
+  
+  return "\n          <h4>Response Class</h4>\n          <p><span class=\"model-signature\" /></p>\n          <br/>\n          <div class=\"response-content-type\" />\n        ";
+  }
+
+function program5(depth0,data) {
+  
+  
+  return "\n          <h4>Parameters</h4>\n          <table class='fullwidth'>\n          <thead>\n            <tr>\n            <th style=\"width: 100px; max-width: 100px\">Parameter</th>\n            <th style=\"width: 310px; max-width: 310px\">Value</th>\n            <th style=\"width: 200px; max-width: 200px\">Description</th>\n            <th style=\"width: 100px; max-width: 100px\">Parameter Type</th>\n            <th style=\"width: 220px; max-width: 230px\">Data Type</th>\n            </tr>\n          </thead>\n          <tbody class=\"operation-params\">\n\n          </tbody>\n          </table>\n          ";
+  }
+
+function program7(depth0,data) {
+  
+  
+  return "\n          <div style='margin:0;padding:0;display:inline'></div>\n          <h4>Error Status Codes</h4>\n          <table class='fullwidth'>\n            <thead>\n            <tr>\n              <th>HTTP Status Code</th>\n              <th>Reason</th>\n            </tr>\n            </thead>\n            <tbody class=\"operation-status\">\n            \n            </tbody>\n          </table>\n          ";
+  }
+
+function program9(depth0,data) {
+  
+  
+  return "\n          ";
+  }
+
+function program11(depth0,data) {
+  
+  
+  return "\n          <div class='sandbox_header'>\n            <input class='submit' name='commit' type='button' value='Try it out!' />\n            <a href='#' class='response_hider' style='display:none'>Hide Response</a>\n            <img alt='Throbber' class='response_throbber' src='images/throbber.gif' style='display:none' />\n          </div>\n          ";
+  }
+
+  buffer += "\n  <ul class='operations' >\n    <li class='";
+  if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + " operation' id='";
+  if (stack1 = helpers.resourceName) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.resourceName; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.number) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.number; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>\n      <div class='heading'>\n        <h3>\n          <span class='http_method'>\n          <a href='#!/";
+  if (stack1 = helpers.resourceName) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.resourceName; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "/";
+  if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.number) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.number; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' class=\"toggleOperation\">";
+  if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</a>\n          </span>\n          <span class='path'>\n          <a href='#!/";
+  if (stack1 = helpers.resourceName) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.resourceName; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "/";
+  if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.number) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.number; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' class=\"toggleOperation\">";
+  if (stack1 = helpers.path) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.path; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</a>\n          </span>\n        </h3>\n        <ul class='options'>\n          <li>\n          <a href='#!/";
+  if (stack1 = helpers.resourceName) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.resourceName; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "/";
+  if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.number) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.number; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' class=\"toggleOperation\">";
+  if (stack1 = helpers.summary) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.summary; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</a>\n          </li>\n        </ul>\n      </div>\n      <div class='content' id='";
+  if (stack1 = helpers.resourceName) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.resourceName; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_";
+  if (stack1 = helpers.number) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.number; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_content' style='display:none'>\n        ";
+  stack1 = helpers['if'].call(depth0, depth0.notes, {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n        ";
+  stack1 = helpers['if'].call(depth0, depth0.type, {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n        <form accept-charset='UTF-8' class='sandbox'>\n          <div style='margin:0;padding:0;display:inline'></div>\n          ";
+  stack1 = helpers['if'].call(depth0, depth0.parameters, {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n          ";
+  stack1 = helpers['if'].call(depth0, depth0.responseMessages, {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n          ";
+  stack1 = helpers['if'].call(depth0, depth0.isReadOnly, {hash:{},inverse:self.program(11, program11, data),fn:self.program(9, program9, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n        </form>\n        <div class='response' style='display:none'>\n          <h4>Request URL</h4>\n          <div class='block request_url'></div>\n          <h4>Response Body</h4>\n          <div class='block response_body'></div>\n          <h4>Response Code</h4>\n          <div class='block response_code'></div>\n          <h4>Response Headers</h4>\n          <div class='block response_headers'></div>\n        </div>\n      </div>\n    </li>\n  </ul>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['param'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                ";
+  stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n        ";
+  return buffer;
+  }
+function program2(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                        <input type=\"file\" name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'/>\n                   <div class=\"parameter-content-type\" />\n              ";
+  return buffer;
+  }
+
+function program4(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                        ";
+  stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(7, program7, data),fn:self.program(5, program5, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n                ";
+  return buffer;
+  }
+function program5(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                                <textarea class='body-textarea' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>";
+  if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</textarea>\n                   ";
+  return buffer;
+  }
+
+function program7(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                                <textarea class='body-textarea' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'></textarea>\n                         <br />\n                                <div class=\"parameter-content-type\" />\n                      ";
+  return buffer;
+  }
+
+function program9(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                ";
+  stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(12, program12, data),fn:self.program(10, program10, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n        ";
+  return buffer;
+  }
+function program10(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                        <input class='parameter' minlength='0' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' placeholder='' type='text' value='";
+  if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'/>\n           ";
+  return buffer;
+  }
+
+function program12(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                        <input class='parameter' minlength='0' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' placeholder='' type='text' value=''/>\n               ";
+  return buffer;
+  }
+
+  buffer += "<td class='code'>";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</td>\n<td>\n\n ";
+  stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(9, program9, data),fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n\n</td>\n<td>";
+  if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</td>\n<td>";
+  if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</td>\n<td>\n     <span class=\"model-signature\"></span>\n</td>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['param_list'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, stack2, self=this, functionType="function", escapeExpression=this.escapeExpression;
+
+function program1(depth0,data) {
+  
+  
+  return " multiple='multiple'";
+  }
+
+function program3(depth0,data) {
+  
+  
+  return "\n    ";
+  }
+
+function program5(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n      ";
+  stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(8, program8, data),fn:self.program(6, program6, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n    ";
+  return buffer;
+  }
+function program6(depth0,data) {
+  
+  
+  return "\n      ";
+  }
+
+function program8(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        ";
+  stack1 = helpers['if'].call(depth0, depth0.allowMultiple, {hash:{},inverse:self.program(11, program11, data),fn:self.program(9, program9, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n      ";
+  return buffer;
+  }
+function program9(depth0,data) {
+  
+  
+  return "\n         ";
+  }
+
+function program11(depth0,data) {
+  
+  
+  return "\n          <option selected=\"\" value=''></option>\n         ";
+  }
+
+function program13(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n      ";
+  stack1 = helpers['if'].call(depth0, depth0.isDefault, {hash:{},inverse:self.program(16, program16, data),fn:self.program(14, program14, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n    ";
+  return buffer;
+  }
+function program14(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        <option selected=\"\" value='";
+  if (stack1 = helpers.value) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.value; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>";
+  if (stack1 = helpers.value) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.value; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + " (default)</option>\n      ";
+  return buffer;
+  }
+
+function program16(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        <option value='";
+  if (stack1 = helpers.value) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.value; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>";
+  if (stack1 = helpers.value) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.value; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</option>\n      ";
+  return buffer;
+  }
+
+  buffer += "<td class='code'>";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</td>\n<td>\n  <select ";
+  stack1 = helpers['if'].call(depth0, depth0.allowMultiple, {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += " class='parameter' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>\n    ";
+  stack1 = helpers['if'].call(depth0, depth0.required, {hash:{},inverse:self.program(5, program5, data),fn:self.program(3, program3, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n    ";
+  stack2 = helpers.each.call(depth0, ((stack1 = depth0.allowableValues),stack1 == null || stack1 === false ? stack1 : stack1.descriptiveValues), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});
+  if(stack2 || stack2 === 0) { buffer += stack2; }
+  buffer += "\n  </select>\n</td>\n<td>";
+  if (stack2 = helpers.description) { stack2 = stack2.call(depth0, {hash:{},data:data}); }
+  else { stack2 = depth0.description; stack2 = typeof stack2 === functionType ? stack2.apply(depth0) : stack2; }
+  if(stack2 || stack2 === 0) { buffer += stack2; }
+  buffer += "</td>\n<td>";
+  if (stack2 = helpers.paramType) { stack2 = stack2.call(depth0, {hash:{},data:data}); }
+  else { stack2 = depth0.paramType; stack2 = typeof stack2 === functionType ? stack2.apply(depth0) : stack2; }
+  if(stack2 || stack2 === 0) { buffer += stack2; }
+  buffer += "</td>\n<td><span class=\"model-signature\"></span></td>";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['param_readonly'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        <textarea class='body-textarea' readonly='readonly' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>";
+  if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</textarea>\n    ";
+  return buffer;
+  }
+
+function program3(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        ";
+  stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(6, program6, data),fn:self.program(4, program4, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n    ";
+  return buffer;
+  }
+function program4(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n            ";
+  if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "\n        ";
+  return buffer;
+  }
+
+function program6(depth0,data) {
+  
+  
+  return "\n            (empty)\n        ";
+  }
+
+  buffer += "<td class='code'>";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</td>\n<td>\n    ";
+  stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n</td>\n<td>";
+  if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</td>\n<td>";
+  if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</td>\n<td><span class=\"model-signature\"></span></td>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['param_readonly_required'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        <textarea class='body-textarea'  readonly='readonly' placeholder='(required)' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>";
+  if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</textarea>\n    ";
+  return buffer;
+  }
+
+function program3(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n        ";
+  stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(6, program6, data),fn:self.program(4, program4, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n    ";
+  return buffer;
+  }
+function program4(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n            ";
+  if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "\n        ";
+  return buffer;
+  }
+
+function program6(depth0,data) {
+  
+  
+  return "\n            (empty)\n        ";
+  }
+
+  buffer += "<td class='code required'>";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</td>\n<td>\n    ";
+  stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n</td>\n<td>";
+  if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</td>\n<td>";
+  if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</td>\n<td><span class=\"model-signature\"></span></td>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['param_required'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                ";
+  stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n        ";
+  return buffer;
+  }
+function program2(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                        <input type=\"file\" name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'/>\n           ";
+  return buffer;
+  }
+
+function program4(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                        ";
+  stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(7, program7, data),fn:self.program(5, program5, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n                ";
+  return buffer;
+  }
+function program5(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                                <textarea class='body-textarea' placeholder='(required)' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>";
+  if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</textarea>\n                   ";
+  return buffer;
+  }
+
+function program7(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                                <textarea class='body-textarea' placeholder='(required)' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'></textarea>\n                         <br />\n                                <div class=\"parameter-content-type\" />\n                      ";
+  return buffer;
+  }
+
+function program9(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                ";
+  stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(12, program12, data),fn:self.program(10, program10, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n        ";
+  return buffer;
+  }
+function program10(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                        <input class='parameter' class='required' type='file' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'/>\n           ";
+  return buffer;
+  }
+
+function program12(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                        ";
+  stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(15, program15, data),fn:self.program(13, program13, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n                ";
+  return buffer;
+  }
+function program13(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                                <input class='parameter required' minlength='1' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' placeholder='(required)' type='text' value='";
+  if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'/>\n                   ";
+  return buffer;
+  }
+
+function program15(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n                                <input class='parameter required' minlength='1' name='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' placeholder='(required)' type='text' value=''/>\n                     ";
+  return buffer;
+  }
+
+  buffer += "<td class='code required'>";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</td>\n<td>\n   ";
+  stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(9, program9, data),fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n</td>\n<td>\n   <strong>";
+  if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</strong>\n</td>\n<td>";
+  if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</td>\n<td><span class=\"model-signature\"></span></td>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['parameter_content_type'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n  ";
+  stack1 = helpers.each.call(depth0, depth0.consumes, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n";
+  return buffer;
+  }
+function program2(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n  <option value=\"";
+  stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\">";
+  stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</option>\n  ";
+  return buffer;
+  }
+
+function program4(depth0,data) {
+  
+  
+  return "\n  <option value=\"application/json\">application/json</option>\n";
+  }
+
+  buffer += "<label for=\"parameterContentType\"></label>\n<select name=\"parameterContentType\">\n";
+  stack1 = helpers['if'].call(depth0, depth0.consumes, {hash:{},inverse:self.program(4, program4, data),fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n</select>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['resource'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, options, functionType="function", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;
+
+function program1(depth0,data) {
+  
+  
+  return " : ";
+  }
+
+  buffer += "<div class='heading'>\n  <h2>\n    <a href='#!/";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' onclick=\"Docs.toggleEndpointListForResource('";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "');\">";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</a> ";
+  options = {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data};
+  if (stack1 = helpers.description) { stack1 = stack1.call(depth0, options); }
+  else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if (!helpers.description) { stack1 = blockHelperMissing.call(depth0, stack1, options); }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n  </h2>\n  <ul class='options'>\n    <li>\n      <a href='#!/";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "' id='endpointListTogger_";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'\n         onclick=\"Docs.toggleEndpointListForResource('";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "');\">Show/Hide</a>\n    </li>\n    <li>\n      <a href='#' onclick=\"Docs.collapseOperationsForResource('";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'); return false;\">\n        List Operations\n      </a>\n    </li>\n    <li>\n      <a href='#' onclick=\"Docs.expandOperationsForResource('";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'); return false;\">\n        Expand Operations\n      </a>\n    </li>\n    <li>\n      <a href='";
+  if (stack1 = helpers.url) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.url; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "'>Raw</a>\n    </li>\n  </ul>\n</div>\n<ul class='endpoints' id='";
+  if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "_endpoint_list' style='display:none'>\n\n</ul>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['response_content_type'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", self=this;
+
+function program1(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n  ";
+  stack1 = helpers.each.call(depth0, depth0.produces, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n";
+  return buffer;
+  }
+function program2(depth0,data) {
+  
+  var buffer = "", stack1;
+  buffer += "\n  <option value=\"";
+  stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\">";
+  stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</option>\n  ";
+  return buffer;
+  }
+
+function program4(depth0,data) {
+  
+  
+  return "\n  <option value=\"application/json\">application/json</option>\n";
+  }
+
+  buffer += "<label for=\"responseContentType\"></label>\n<select name=\"responseContentType\">\n";
+  stack1 = helpers['if'].call(depth0, depth0.produces, {hash:{},inverse:self.program(4, program4, data),fn:self.program(1, program1, data),data:data});
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n</select>\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['signature'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;
+
+
+  buffer += "<div>\n<ul class=\"signature-nav\">\n    <li><a class=\"description-link\" href=\"#\">Model</a></li>\n    <li><a class=\"snippet-link\" href=\"#\">Model Schema</a></li>\n</ul>\n<div>\n\n<div class=\"signature-container\">\n    <div class=\"description\">\n        ";
+  if (stack1 = helpers.signature) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.signature; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "\n    </div>\n\n    <div class=\"snippet\">\n        <pre><code>";
+  if (stack1 = helpers.sampleJSON) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.sampleJSON; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</code></pre>\n        <small class=\"notice\"></small>\n    </div>\n</div>\n\n";
+  return buffer;
+  });
+})();
+
+(function() {
+  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
+templates['status_code'] = template(function (Handlebars,depth0,helpers,partials,data) {
+  this.compilerInfo = [4,'>= 1.0.0'];
+helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
+  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;
+
+
+  buffer += "<td width='15%' class='code'>";
+  if (stack1 = helpers.code) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.code; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  buffer += escapeExpression(stack1)
+    + "</td>\n<td>";
+  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
+  else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
+  if(stack1 || stack1 === 0) { buffer += stack1; }
+  buffer += "</td>\n";
+  return buffer;
+  });
+})();
+
+
+
+// Generated by CoffeeScript 1.6.3
+(function() {
+  var ContentTypeView, HeaderView, MainView, OperationView, ParameterContentTypeView, ParameterView, ResourceView, ResponseContentTypeView, SignatureView, StatusCodeView, SwaggerUi, _ref, _ref1, _ref10, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9,
+    __hasProp = {}.hasOwnProperty,
+    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
+
+  SwaggerUi = (function(_super) {
+    __extends(SwaggerUi, _super);
+
+    function SwaggerUi() {
+      _ref = SwaggerUi.__super__.constructor.apply(this, arguments);
+      return _ref;
+    }
+
+    SwaggerUi.prototype.dom_id = "swagger_ui";
+
+    SwaggerUi.prototype.options = null;
+
+    SwaggerUi.prototype.api = null;
+
+    SwaggerUi.prototype.headerView = null;
+
+    SwaggerUi.prototype.mainView = null;
+
+    SwaggerUi.prototype.initialize = function(options) {
+      var _this = this;
+      if (options == null) {
+        options = {};
+      }
+      if (options.dom_id != null) {
+        this.dom_id = options.dom_id;
+        delete options.dom_id;
+      }
+      if ($('#' + this.dom_id) == null) {
+        $('body').append('<div id="' + this.dom_id + '"></div>');
+      }
+      this.options = options;
+      this.options.success = function() {
+        return _this.render();
+      };
+      this.options.progress = function(d) {
+        return _this.showMessage(d);
+      };
+      this.options.failure = function(d) {
+        return _this.onLoadFailure(d);
+      };
+      this.headerView = new HeaderView({
+        el: $('#header')
+      });
+      return this.headerView.on('update-swagger-ui', function(data) {
+        return _this.updateSwaggerUi(data);
+      });
+    };
+
+    SwaggerUi.prototype.updateSwaggerUi = function(data) {
+      this.options.url = data.url;
+      return this.load();
+    };
+
+    SwaggerUi.prototype.load = function() {
+      var url, _ref1;
+      if ((_ref1 = this.mainView) != null) {
+        _ref1.clear();
+      }
+      url = this.options.url;
+      if (url.indexOf("http") !== 0) {
+        url = this.buildUrl(window.location.href.toString(), url);
+      }
+      this.options.url = url;
+      this.headerView.update(url);
+      this.api = new SwaggerApi(this.options);
+      this.api.build();
+      return this.api;
+    };
+
+    SwaggerUi.prototype.render = function() {
+      var _this = this;
+      this.showMessage('Finished Loading Resource Information. Rendering Swagger UI...');
+      this.mainView = new MainView({
+        model: this.api,
+        el: $('#' + this.dom_id)
+      }).render();
+      this.showMessage();
+      switch (this.options.docExpansion) {
+        case "full":
+          Docs.expandOperationsForResource('');
+          break;
+        case "list":
+          Docs.collapseOperationsForResource('');
+      }
+      if (this.options.onComplete) {
+        this.options.onComplete(this.api, this);
+      }
+      return setTimeout(function() {
+        return Docs.shebang();
+      }, 400);
+    };
+
+    SwaggerUi.prototype.buildUrl = function(base, url) {
+      var parts;
+      console.log("base is " + base);
+      parts = base.split("/");
+      base = parts[0] + "//" + parts[2];
+      if (url.indexOf("/") === 0) {
+        return base + url;
+      } else {
+        return base + "/" + url;
+      }
+    };
+
+    SwaggerUi.prototype.showMessage = function(data) {
+      if (data == null) {
+        data = '';
+      }
+      $('#message-bar').removeClass('message-fail');
+      $('#message-bar').addClass('message-success');
+      return $('#message-bar').html(data);
+    };
+
+    SwaggerUi.prototype.onLoadFailure = function(data) {
+      var val;
+      if (data == null) {
+        data = '';
+      }
+      $('#message-bar').removeClass('message-success');
+      $('#message-bar').addClass('message-fail');
+      val = $('#message-bar').html(data);
+      if (this.options.onFailure != null) {
+        this.options.onFailure(data);
+      }
+      return val;
+    };
+
+    return SwaggerUi;
+
+  })(Backbone.Router);
+
+  window.SwaggerUi = SwaggerUi;
+
+  HeaderView = (function(_super) {
+    __extends(HeaderView, _super);
+
+    function HeaderView() {
+      _ref1 = HeaderView.__super__.constructor.apply(this, arguments);
+      return _ref1;
+    }
+
+    HeaderView.prototype.events = {
+      'click #show-pet-store-icon': 'showPetStore',
+      'click #show-wordnik-dev-icon': 'showWordnikDev',
+      'click #explore': 'showCustom',
+      'keyup #input_baseUrl': 'showCustomOnKeyup',
+      'keyup #input_apiKey': 'showCustomOnKeyup'
+    };
+
+    HeaderView.prototype.initialize = function() {};
+
+    HeaderView.prototype.showPetStore = function(e) {
+      return this.trigger('update-swagger-ui', {
+        url: "http://petstore.swagger.wordnik.com/api/api-docs"
+      });
+    };
+
+    HeaderView.prototype.showWordnikDev = function(e) {
+      return this.trigger('update-swagger-ui', {
+        url: "http://api.wordnik.com/v4/resources.json"
+      });
+    };
+
+    HeaderView.prototype.showCustomOnKeyup = function(e) {
+      if (e.keyCode === 13) {
+        return this.showCustom();
+      }
+    };
+
+    HeaderView.prototype.showCustom = function(e) {
+      if (e != null) {
+        e.preventDefault();
+      }
+      return this.trigger('update-swagger-ui', {
+        url: $('#input_baseUrl').val(),
+        apiKey: $('#input_apiKey').val()
+      });
+    };
+
+    HeaderView.prototype.update = function(url, apiKey, trigger) {
+      if (trigger == null) {
+        trigger = false;
+      }
+      $('#input_baseUrl').val(url);
+      if (trigger) {
+        return this.trigger('update-swagger-ui', {
+          url: url
+        });
+      }
+    };
+
+    return HeaderView;
+
+  })(Backbone.View);
+
+  MainView = (function(_super) {
+    __extends(MainView, _super);
+
+    function MainView() {
+      _ref2 = MainView.__super__.constructor.apply(this, arguments);
+      return _ref2;
+    }
+
+    MainView.prototype.initialize = function() {};
+
+    MainView.prototype.render = function() {
+      var resource, _i, _len, _ref3;
+      $(this.el).html(Handlebars.templates.main(this.model));
+      _ref3 = this.model.apisArray;
+      for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
+        resource = _ref3[_i];
+        this.addResource(resource);
+      }
+      return this;
+    };
+
+    MainView.prototype.addResource = function(resource) {
+      var resourceView;
+      resourceView = new ResourceView({
+        model: resource,
+        tagName: 'li',
+        id: 'resource_' + resource.name,
+        className: 'resource'
+      });
+      return $('#resources').append(resourceView.render().el);
+    };
+
+    MainView.prototype.clear = function() {
+      return $(this.el).html('');
+    };
+
+    return MainView;
+
+  })(Backbone.View);
+
+  ResourceView = (function(_super) {
+    __extends(ResourceView, _super);
+
+    function ResourceView() {
+      _ref3 = ResourceView.__super__.constructor.apply(this, arguments);
+      return _ref3;
+    }
+
+    ResourceView.prototype.initialize = function() {};
+
+    ResourceView.prototype.render = function() {
+      var operation, _i, _len, _ref4;
+      console.log(this.model.description);
+      $(this.el).html(Handlebars.templates.resource(this.model));
+      this.number = 0;
+      _ref4 = this.model.operationsArray;
+      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
+        operation = _ref4[_i];
+        this.addOperation(operation);
+      }
+      return this;
+    };
+
+    ResourceView.prototype.addOperation = function(operation) {
+      var operationView;
+      operation.number = this.number;
+      operationView = new OperationView({
+        model: operation,
+        tagName: 'li',
+        className: 'endpoint'
+      });
+      $('.endpoints', $(this.el)).append(operationView.render().el);
+      return this.number++;
+    };
+
+    return ResourceView;
+
+  })(Backbone.View);
+
+  OperationView = (function(_super) {
+    __extends(OperationView, _super);
+
+    function OperationView() {
+      _ref4 = OperationView.__super__.constructor.apply(this, arguments);
+      return _ref4;
+    }
+
+    OperationView.prototype.invocationUrl = null;
+
+    OperationView.prototype.events = {
+      'submit .sandbox': 'submitOperation',
+      'click .submit': 'submitOperation',
+      'click .response_hider': 'hideResponse',
+      'click .toggleOperation': 'toggleOperationContent'
+    };
+
+    OperationView.prototype.initialize = function() {};
+
+    OperationView.prototype.render = function() {
+      var contentTypeModel, isMethodSubmissionSupported, param, responseContentTypeView, responseSignatureView, signatureModel, statusCode, type, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7;
+      isMethodSubmissionSupported = true;
+      if (!isMethodSubmissionSupported) {
+        this.model.isReadOnly = true;
+      }
+      $(this.el).html(Handlebars.templates.operation(this.model));
+      if (this.model.responseClassSignature && this.model.responseClassSignature !== 'string') {
+        signatureModel = {
+          sampleJSON: this.model.responseSampleJSON,
+          isParam: false,
+          signature: this.model.responseClassSignature
+        };
+        responseSignatureView = new SignatureView({
+          model: signatureModel,
+          tagName: 'div'
+        });
+        $('.model-signature', $(this.el)).append(responseSignatureView.render().el);
+      } else {
+        $('.model-signature', $(this.el)).html(this.model.type);
+      }
+      contentTypeModel = {
+        isParam: false
+      };
+      contentTypeModel.consumes = this.model.consumes;
+      contentTypeModel.produces = this.model.produces;
+      _ref5 = this.model.parameters;
+      for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
+        param = _ref5[_i];
+        type = param.type || param.dataType;
+        if (type.toLowerCase() === 'file') {
+          if (!contentTypeModel.consumes) {
+            console.log("set content type ");
+            contentTypeModel.consumes = 'multipart/form-data';
+          }
+        }
+      }
+      responseContentTypeView = new ResponseContentTypeView({
+        model: contentTypeModel
+      });
+      $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el);
+      _ref6 = this.model.parameters;
+      for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
+        param = _ref6[_j];
+        this.addParameter(param, contentTypeModel.consumes);
+      }
+      _ref7 = this.model.responseMessages;
+      for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) {
+        statusCode = _ref7[_k];
+        this.addStatusCode(statusCode);
+      }
+      return this;
+    };
+
+    OperationView.prototype.addParameter = function(param, consumes) {
+      var paramView;
+      param.consumes = consumes;
+      paramView = new ParameterView({
+        model: param,
+        tagName: 'tr',
+        readOnly: this.model.isReadOnly
+      });
+      return $('.operation-params', $(this.el)).append(paramView.render().el);
+    };
+
+    OperationView.prototype.addStatusCode = function(statusCode) {
+      var statusCodeView;
+      statusCodeView = new StatusCodeView({
+        model: statusCode,
+        tagName: 'tr'
+      });
+      return $('.operation-status', $(this.el)).append(statusCodeView.render().el);
+    };
+
+    OperationView.prototype.submitOperation = function(e) {
+      var error_free, form, isFileUpload, map, o, opts, val, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7;
+      if (e != null) {
+        e.preventDefault();
+      }
+      form = $('.sandbox', $(this.el));
+      error_free = true;
+      form.find("input.required").each(function() {
+        var _this = this;
+        $(this).removeClass("error");
+        if (jQuery.trim($(this).val()) === "") {
+          $(this).addClass("error");
+          $(this).wiggle({
+            callback: function() {
+              return $(_this).focus();
+            }
+          });
+          return error_free = false;
+        }
+      });
+      if (error_free) {
+        map = {};
+        opts = {
+          parent: this
+        };
+        isFileUpload = false;
+        _ref5 = form.find("input");
+        for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
+          o = _ref5[_i];
+          if ((o.value != null) && jQuery.trim(o.value).length > 0) {
+            map[o.name] = o.value;
+          }
+          if (o.type === "file") {
+            isFileUpload = true;
+          }
+        }
+        _ref6 = form.find("textarea");
+        for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
+          o = _ref6[_j];
+          if ((o.value != null) && jQuery.trim(o.value).length > 0) {
+            map["body"] = o.value;
+          }
+        }
+        _ref7 = form.find("select");
+        for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) {
+          o = _ref7[_k];
+          val = this.getSelectedValue(o);
+          if ((val != null) && jQuery.trim(val).length > 0) {
+            map[o.name] = val;
+          }
+        }
+        opts.responseContentType = $("div select[name=responseContentType]", $(this.el)).val();
+        opts.requestContentType = $("div select[name=parameterContentType]", $(this.el)).val();
+        $(".response_throbber", $(this.el)).show();
+        if (isFileUpload) {
+          return this.handleFileUpload(map, form);
+        } else {
+          return this.model["do"](map, opts, this.showCompleteStatus, this.showErrorStatus, this);
+        }
+      }
+    };
+
+    OperationView.prototype.success = function(response, parent) {
+      return parent.showCompleteStatus(response);
+    };
+
+    OperationView.prototype.handleFileUpload = function(map, form) {
+      var bodyParam, headerParams, o, obj, param, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7,
+        _this = this;
+      console.log("it's a file upload");
+      _ref5 = form.serializeArray();
+      for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
+        o = _ref5[_i];
+        if ((o.value != null) && jQuery.trim(o.value).length > 0) {
+          map[o.name] = o.value;
+        }
+      }
+      bodyParam = new FormData();
+      _ref6 = this.model.parameters;
+      for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
+        param = _ref6[_j];
+        if (param.paramType === 'form') {
+          bodyParam.append(param.name, map[param.name]);
+        }
+      }
+      headerParams = {};
+      _ref7 = this.model.parameters;
+      for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) {
+        param = _ref7[_k];
+        if (param.paramType === 'header') {
+          headerParams[param.name] = map[param.name];
+        }
+      }
+      console.log(headerParams);
+      $.each($('input[type~="file"]'), function(i, el) {
+        return bodyParam.append($(el).attr('name'), el.files[0]);
+      });
+      console.log(bodyParam);
+      this.invocationUrl = this.model.supportHeaderParams() ? (headerParams = this.model.getHeaderParams(map), this.model.urlify(map, false)) : this.model.urlify(map, true);
+      $(".request_url", $(this.el)).html("<pre>" + this.invocationUrl + "</pre>");
+      obj = {
+        type: this.model.method,
+        url: this.invocationUrl,
+        headers: headerParams,
+        data: bodyParam,
+        dataType: 'json',
+        contentType: false,
+        processData: false,
+        error: function(data, textStatus, error) {
+          return _this.showErrorStatus(_this.wrap(data), _this);
+        },
+        success: function(data) {
+          return _this.showResponse(data, _this);
+        },
+        complete: function(data) {
+          return _this.showCompleteStatus(_this.wrap(data), _this);
+        }
+      };
+      if (window.authorizations) {
+        window.authorizations.apply(obj);
+      }
+      jQuery.ajax(obj);
+      return false;
+    };
+
+    OperationView.prototype.wrap = function(data) {
+      var o,
+        _this = this;
+      o = {};
+      o.content = {};
+      o.content.data = data.responseText;
+      o.getHeaders = function() {
+        return {
+          "Content-Type": data.getResponseHeader("Content-Type")
+        };
+      };
+      o.request = {};
+      o.request.url = this.invocationUrl;
+      o.status = data.status;
+      return o;
+    };
+
+    OperationView.prototype.getSelectedValue = function(select) {
+      var opt, options, _i, _len, _ref5;
+      if (!select.multiple) {
+        return select.value;
+      } else {
+        options = [];
+        _ref5 = select.options;
+        for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
+          opt = _ref5[_i];
+          if (opt.selected) {
+            options.push(opt.value);
+          }
+        }
+        if (options.length > 0) {
+          return options.join(",");
+        } else {
+          return null;
+        }
+      }
+    };
+
+    OperationView.prototype.hideResponse = function(e) {
+      if (e != null) {
+        e.preventDefault();
+      }
+      $(".response", $(this.el)).slideUp();
+      return $(".response_hider", $(this.el)).fadeOut();
+    };
+
+    OperationView.prototype.showResponse = function(response) {
+      var prettyJson;
+      prettyJson = JSON.stringify(response, null, "\t").replace(/\n/g, "<br>");
+      return $(".response_body", $(this.el)).html(escape(prettyJson));
+    };
+
+    OperationView.prototype.showErrorStatus = function(data, parent) {
+      return parent.showStatus(data);
+    };
+
+    OperationView.prototype.showCompleteStatus = function(data, parent) {
+      return parent.showStatus(data);
+    };
+
+    OperationView.prototype.formatXml = function(xml) {
+      var contexp, formatted, indent, lastType, lines, ln, pad, reg, transitions, wsexp, _fn, _i, _len;
+      reg = /(>)(<)(\/*)/g;
+      wsexp = /[ ]*(.*)[ ]+\n/g;
+      contexp = /(<.+>)(.+\n)/g;
+      xml = xml.replace(reg, '$1\n$2$3').replace(wsexp, '$1\n').replace(contexp, '$1\n$2');
+      pad = 0;
+      formatted = '';
+      lines = xml.split('\n');
+      indent = 0;
+      lastType = 'other';
+      transitions = {
+        'single->single': 0,
+        'single->closing': -1,
+        'single->opening': 0,
+        'single->other': 0,
+        'closing->single': 0,
+        'closing->closing': -1,
+        'closing->opening': 0,
+        'closing->other': 0,
+        'opening->single': 1,
+        'opening->closing': 0,
+        'opening->opening': 1,
+        'opening->other': 1,
+        'other->single': 0,
+        'other->closing': -1,
+        'other->opening': 0,
+        'other->other': 0
+      };
+      _fn = function(ln) {
+        var fromTo, j, key, padding, type, types, value;
+        types = {
+          single: Boolean(ln.match(/<.+\/>/)),
+          closing: Boolean(ln.match(/<\/.+>/)),
+          opening: Boolean(ln.match(/<[^!?].*>/))
+        };
+        type = ((function() {
+          var _results;
+          _results = [];
+          for (key in types) {
+            value = types[key];
+            if (value) {
+              _results.push(key);
+            }
+          }
+          return _results;
+        })())[0];
+        type = type === void 0 ? 'other' : type;
+        fromTo = lastType + '->' + type;
+        lastType = type;
+        padding = '';
+        indent += transitions[fromTo];
+        padding = ((function() {
+          var _j, _ref5, _results;
+          _results = [];
+          for (j = _j = 0, _ref5 = indent; 0 <= _ref5 ? _j < _ref5 : _j > _ref5; j = 0 <= _ref5 ? ++_j : --_j) {
+            _results.push('  ');
+          }
+          return _results;
+        })()).join('');
+        if (fromTo === 'opening->closing') {
+          return formatted = formatted.substr(0, formatted.length - 1) + ln + '\n';
+        } else {
+          return formatted += padding + ln + '\n';
+        }
+      };
+      for (_i = 0, _len = lines.length; _i < _len; _i++) {
+        ln = lines[_i];
+        _fn(ln);
+      }
+      return formatted;
+    };
+
+    OperationView.prototype.showStatus = function(data) {
+      var code, content, contentType, headers, pre, response_body;
+      content = data.content.data;
+      headers = data.getHeaders();
+      contentType = headers["Content-Type"];
+      if (content === void 0) {
+        code = $('<code />').text("no content");
+        pre = $('<pre class="json" />').append(code);
+      } else if (contentType.indexOf("application/json") === 0 || contentType.indexOf("application/hal+json") === 0) {
+        code = $('<code />').text(JSON.stringify(JSON.parse(content), null, 2));
+        pre = $('<pre class="json" />').append(code);
+      } else if (contentType.indexOf("application/xml") === 0) {
+        code = $('<code />').text(this.formatXml(content));
+        pre = $('<pre class="xml" />').append(code);
+      } else if (contentType.indexOf("text/html") === 0) {
+        code = $('<code />').html(content);
+        pre = $('<pre class="xml" />').append(code);
+      } else if (contentType.indexOf("image/") === 0) {
+        pre = $('<img>').attr('src', data.request.url);
+      } else {
+        code = $('<code />').text(content);
+        pre = $('<pre class="json" />').append(code);
+      }
+      response_body = pre;
+      $(".request_url", $(this.el)).html("<pre>" + data.request.url + "</pre>");
+      $(".response_code", $(this.el)).html("<pre>" + data.status + "</pre>");
+      $(".response_body", $(this.el)).html(response_body);
+      $(".response_headers", $(this.el)).html("<pre>" + JSON.stringify(data.getHeaders(), null, "  ").replace(/\n/g, "<br>") + "</pre>");
+      $(".response", $(this.el)).slideDown();
+      $(".response_hider", $(this.el)).show();
+      $(".response_throbber", $(this.el)).hide();
+      return hljs.highlightBlock($('.response_body', $(this.el))[0]);
+    };
+
+    OperationView.prototype.toggleOperationContent = function() {
+      var elem;
+      elem = $('#' + Docs.escapeResourceName(this.model.resourceName) + "_" + this.model.nickname + "_" + this.model.method + "_" + this.model.number + "_content");
+      if (elem.is(':visible')) {
+        return Docs.collapseOperation(elem);
+      } else {
+        return Docs.expandOperation(elem);
+      }
+    };
+
+    return OperationView;
+
+  })(Backbone.View);
+
+  StatusCodeView = (function(_super) {
+    __extends(StatusCodeView, _super);
+
+    function StatusCodeView() {
+      _ref5 = StatusCodeView.__super__.constructor.apply(this, arguments);
+      return _ref5;
+    }
+
+    StatusCodeView.prototype.initialize = function() {};
+
+    StatusCodeView.prototype.render = function() {
+      var template;
+      template = this.template();
+      $(this.el).html(template(this.model));
+      return this;
+    };
+
+    StatusCodeView.prototype.template = function() {
+      return Handlebars.templates.status_code;
+    };
+
+    return StatusCodeView;
+
+  })(Backbone.View);
+
+  ParameterView = (function(_super) {
+    __extends(ParameterView, _super);
+
+    function ParameterView() {
+      _ref6 = ParameterView.__super__.constructor.apply(this, arguments);
+      return _ref6;
+    }
+
+    ParameterView.prototype.initialize = function() {};
+
+    ParameterView.prototype.render = function() {
+      var contentTypeModel, isParam, parameterContentTypeView, responseContentTypeView, signatureModel, signatureView, template, type;
+      type = this.model.type || this.model.dataType;
+      if (this.model.paramType === 'body') {
+        this.model.isBody = true;
+      }
+      if (type.toLowerCase() === 'file') {
+        this.model.isFile = true;
+      }
+      template = this.template();
+      $(this.el).html(template(this.model));
+      signatureModel = {
+        sampleJSON: this.model.sampleJSON,
+        isParam: true,
+        signature: this.model.signature
+      };
+      if (this.model.sampleJSON) {
+        signatureView = new SignatureView({
+          model: signatureModel,
+          tagName: 'div'
+        });
+        $('.model-signature', $(this.el)).append(signatureView.render().el);
+      } else {
+        $('.model-signature', $(this.el)).html(this.model.signature);
+      }
+      isParam = false;
+      if (this.model.isBody) {
+        isParam = true;
+      }
+      contentTypeModel = {
+        isParam: isParam
+      };
+      contentTypeModel.consumes = this.model.consumes;
+      if (isParam) {
+        parameterContentTypeView = new ParameterContentTypeView({
+          model: contentTypeModel
+        });
+        $('.parameter-content-type', $(this.el)).append(parameterContentTypeView.render().el);
+      } else {
+        responseContentTypeView = new ResponseContentTypeView({
+          model: contentTypeModel
+        });
+        $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el);
+      }
+      return this;
+    };
+
+    ParameterView.prototype.template = function() {
+      if (this.model.isList) {
+        return Handlebars.templates.param_list;
+      } else {
+        if (this.options.readOnly) {
+          if (this.model.required) {
+            return Handlebars.templates.param_readonly_required;
+          } else {
+            return Handlebars.templates.param_readonly;
+          }
+        } else {
+          if (this.model.required) {
+            return Handlebars.templates.param_required;
+          } else {
+            return Handlebars.templates.param;
+          }
+        }
+      }
+    };
+
+    return ParameterView;
+
+  })(Backbone.View);
+
+  SignatureView = (function(_super) {
+    __extends(SignatureView, _super);
+
+    function SignatureView() {
+      _ref7 = SignatureView.__super__.constructor.apply(this, arguments);
+      return _ref7;
+    }
+
+    SignatureView.prototype.events = {
+      'click a.description-link': 'switchToDescription',
+      'click a.snippet-link': 'switchToSnippet',
+      'mousedown .snippet': 'snippetToTextArea'
+    };
+
+    SignatureView.prototype.initialize = function() {};
+
+    SignatureView.prototype.render = function() {
+      var template;
+      template = this.template();
+      $(this.el).html(template(this.model));
+      this.switchToDescription();
+      this.isParam = this.model.isParam;
+      if (this.isParam) {
+        $('.notice', $(this.el)).text('Click to set as parameter value');
+      }
+      return this;
+    };
+
+    SignatureView.prototype.template = function() {
+      return Handlebars.templates.signature;
+    };
+
+    SignatureView.prototype.switchToDescription = function(e) {
+      if (e != null) {
+        e.preventDefault();
+      }
+      $(".snippet", $(this.el)).hide();
+      $(".description", $(this.el)).show();
+      $('.description-link', $(this.el)).addClass('selected');
+      return $('.snippet-link', $(this.el)).removeClass('selected');
+    };
+
+    SignatureView.prototype.switchToSnippet = function(e) {
+      if (e != null) {
+        e.preventDefault();
+      }
+      $(".description", $(this.el)).hide();
+      $(".snippet", $(this.el)).show();
+      $('.snippet-link', $(this.el)).addClass('selected');
+      return $('.description-link', $(this.el)).removeClass('selected');
+    };
+
+    SignatureView.prototype.snippetToTextArea = function(e) {
+      var textArea;
+      if (this.isParam) {
+        if (e != null) {
+          e.preventDefault();
+        }
+        textArea = $('textarea', $(this.el.parentNode.parentNode.parentNode));
+        if ($.trim(textArea.val()) === '') {
+          return textArea.val(this.model.sampleJSON);
+        }
+      }
+    };
+
+    return SignatureView;
+
+  })(Backbone.View);
+
+  ContentTypeView = (function(_super) {
+    __extends(ContentTypeView, _super);
+
+    function ContentTypeView() {
+      _ref8 = ContentTypeView.__super__.constructor.apply(this, arguments);
+      return _ref8;
+    }
+
+    ContentTypeView.prototype.initialize = function() {};
+
+    ContentTypeView.prototype.render = function() {
+      var template;
+      template = this.template();
+      $(this.el).html(template(this.model));
+      $('label[for=contentType]', $(this.el)).text('Response Content Type');
+      return this;
+    };
+
+    ContentTypeView.prototype.template = function() {
+      return Handlebars.templates.content_type;
+    };
+
+    return ContentTypeView;
+
+  })(Backbone.View);
+
+  ResponseContentTypeView = (function(_super) {
+    __extends(ResponseContentTypeView, _super);
+
+    function ResponseContentTypeView() {
+      _ref9 = ResponseContentTypeView.__super__.constructor.apply(this, arguments);
+      return _ref9;
+    }
+
+    ResponseContentTypeView.prototype.initialize = function() {};
+
+    ResponseContentTypeView.prototype.render = function() {
+      var template;
+      template = this.template();
+      $(this.el).html(template(this.model));
+      $('label[for=responseContentType]', $(this.el)).text('Response Content Type');
+      return this;
+    };
+
+    ResponseContentTypeView.prototype.template = function() {
+      return Handlebars.templates.response_content_type;
+    };
+
+    return ResponseContentTypeView;
+
+  })(Backbone.View);
+
+  ParameterContentTypeView = (function(_super) {
+    __extends(ParameterContentTypeView, _super);
+
+    function ParameterContentTypeView() {
+      _ref10 = ParameterContentTypeView.__super__.constructor.apply(this, arguments);
+      return _ref10;
+    }
+
+    ParameterContentTypeView.prototype.initialize = function() {};
+
+    ParameterContentTypeView.prototype.render = function() {
+      var template;
+      template = this.template();
+      $(this.el).html(template(this.model));
+      $('label[for=parameterContentType]', $(this.el)).text('Parameter content type:');
+      return this;
+    };
+
+    ParameterContentTypeView.prototype.template = function() {
+      return Handlebars.templates.parameter_content_type;
+    };
+
+    return ParameterContentTypeView;
+
+  })(Backbone.View);
+
+}).call(this);
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/swagger-ui.min.js b/opendaylight/md-sal/sal-rest-docgen/src/main/resources/explorer/swagger-ui.min.js
new file mode 100644 (file)
index 0000000..be2c105
--- /dev/null
@@ -0,0 +1 @@
+$(function(){$.fn.vAlign=function(){return this.each(function(c){var a=$(this).height();var d=$(this).parent().height();var b=(d-a)/2;$(this).css("margin-top",b)})};$.fn.stretchFormtasticInputWidthToParent=function(){return this.each(function(b){var d=$(this).closest("form").innerWidth();var c=parseInt($(this).closest("form").css("padding-left"),10)+parseInt($(this).closest("form").css("padding-right"),10);var a=parseInt($(this).css("padding-left"),10)+parseInt($(this).css("padding-right"),10);$(this).css("width",d-c-a)})};$("form.formtastic li.string input, form.formtastic textarea").stretchFormtasticInputWidthToParent();$("ul.downplayed li div.content p").vAlign();$("form.sandbox").submit(function(){var a=true;$(this).find("input.required").each(function(){$(this).removeClass("error");if($(this).val()==""){$(this).addClass("error");$(this).wiggle();a=false}});return a})});function clippyCopiedCallback(b){$("#api_key_copied").fadeIn().delay(1000).fadeOut()}function log(){if(window.console){console.log.apply(console,arguments)}}if(Function.prototype.bind&&console&&typeof console.log=="object"){["log","info","warn","error","assert","dir","clear","profile","profileEnd"].forEach(function(a){console[a]=this.bind(console[a],console)},Function.prototype.call)}var Docs={shebang:function(){var b=$.param.fragment().split("/");b.shift();switch(b.length){case 1:var d="resource_"+b[0];Docs.expandEndpointListForResource(b[0]);$("#"+d).slideto({highlight:false});break;case 2:Docs.expandEndpointListForResource(b[0]);$("#"+d).slideto({highlight:false});var c=b.join("_");var a=c+"_content";Docs.expandOperation($("#"+a));$("#"+c).slideto({highlight:false});break}},toggleEndpointListForResource:function(b){var a=$("li#resource_"+Docs.escapeResourceName(b)+" ul.endpoints");if(a.is(":visible")){Docs.collapseEndpointListForResource(b)}else{Docs.expandEndpointListForResource(b)}},expandEndpointListForResource:function(b){var b=Docs.escapeResourceName(b);if(b==""){$(".resource ul.endpoints").slideDown();return}$("li#resource_"+b).addClass("active");var a=$("li#resource_"+b+" ul.endpoints");a.slideDown()},collapseEndpointListForResource:function(b){var b=Docs.escapeResourceName(b);$("li#resource_"+b).removeClass("active");var a=$("li#resource_"+b+" ul.endpoints");a.slideUp()},expandOperationsForResource:function(a){Docs.expandEndpointListForResource(a);if(a==""){$(".resource ul.endpoints li.operation div.content").slideDown();return}$("li#resource_"+Docs.escapeResourceName(a)+" li.operation div.content").each(function(){Docs.expandOperation($(this))})},collapseOperationsForResource:function(a){Docs.expandEndpointListForResource(a);$("li#resource_"+Docs.escapeResourceName(a)+" li.operation div.content").each(function(){Docs.collapseOperation($(this))})},escapeResourceName:function(a){return a.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g,"\\$&")},expandOperation:function(a){a.slideDown()},collapseOperation:function(a){a.slideUp()}};(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.content_type=b(function(g,l,f,k,j){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);j=j||{};var i="",c,h="function",m=this;function e(r,q){var o="",p;o+="\n  ";p=f.each.call(r,r.produces,{hash:{},inverse:m.noop,fn:m.program(2,d,q),data:q});if(p||p===0){o+=p}o+="\n";return o}function d(r,q){var o="",p;o+='\n      <option value="';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+='">';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+="</option>\n        ";return o}function n(p,o){return'\n  <option value="application/json">application/json</option>\n'}i+='<label for="contentType"></label>\n<select name="contentType">\n';c=f["if"].call(l,l.produces,{hash:{},inverse:m.program(4,n,j),fn:m.program(1,e,j),data:j});if(c||c===0){i+=c}i+="\n</select>\n";return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.main=b(function(g,m,f,l,k){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);k=k||{};var i="",c,h="function",j=this.escapeExpression,p=this;function e(v,u){var r="",t,s;r+='\n    <div class="info_title">'+j(((t=((t=v.info),t==null||t===false?t:t.title)),typeof t===h?t.apply(v):t))+'</div>\n    <div class="info_description">';s=((t=((t=v.info),t==null||t===false?t:t.description)),typeof t===h?t.apply(v):t);if(s||s===0){r+=s}r+="</div>\n    ";s=f["if"].call(v,((t=v.info),t==null||t===false?t:t.termsOfServiceUrl),{hash:{},inverse:p.noop,fn:p.program(2,d,u),data:u});if(s||s===0){r+=s}r+="\n    ";s=f["if"].call(v,((t=v.info),t==null||t===false?t:t.contact),{hash:{},inverse:p.noop,fn:p.program(4,q,u),data:u});if(s||s===0){r+=s}r+="\n    ";s=f["if"].call(v,((t=v.info),t==null||t===false?t:t.license),{hash:{},inverse:p.noop,fn:p.program(6,o,u),data:u});if(s||s===0){r+=s}r+="\n  ";return r}function d(u,t){var r="",s;r+='<div class="info_tos"><a href="'+j(((s=((s=u.info),s==null||s===false?s:s.termsOfServiceUrl)),typeof s===h?s.apply(u):s))+'">Terms of service</a></div>';return r}function q(u,t){var r="",s;r+="<div class='info_contact'><a href=\"mailto:"+j(((s=((s=u.info),s==null||s===false?s:s.contact)),typeof s===h?s.apply(u):s))+'">Contact the developer</a></div>';return r}function o(u,t){var r="",s;r+="<div class='info_license'><a href='"+j(((s=((s=u.info),s==null||s===false?s:s.licenseUrl)),typeof s===h?s.apply(u):s))+"'>"+j(((s=((s=u.info),s==null||s===false?s:s.license)),typeof s===h?s.apply(u):s))+"</a></div>";return r}function n(u,t){var r="",s;r+='\n        , <span style="font-variant: small-caps">api version</span>: ';if(s=f.apiVersion){s=s.call(u,{hash:{},data:t})}else{s=u.apiVersion;s=typeof s===h?s.apply(u):s}r+=j(s)+"\n        ";return r}i+="<div class='info' id='api_info'>\n  ";c=f["if"].call(m,m.info,{hash:{},inverse:p.noop,fn:p.program(1,e,k),data:k});if(c||c===0){i+=c}i+="\n</div>\n<div class='container' id='resources_container'>\n    <ul id='resources'>\n    </ul>\n\n    <div class=\"footer\">\n        <br>\n        <br>\n        <h4 style=\"color: #999\">[ <span style=\"font-variant: small-caps\">base url</span>: ";if(c=f.basePath){c=c.call(m,{hash:{},data:k})}else{c=m.basePath;c=typeof c===h?c.apply(m):c}i+=j(c)+"\n        ";c=f["if"].call(m,m.apiVersion,{hash:{},inverse:p.noop,fn:p.program(8,n,k),data:k});if(c||c===0){i+=c}i+="]</h4>\n    </div>\n</div>\n";return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.operation=b(function(h,n,g,m,l){this.compilerInfo=[4,">= 1.0.0"];g=this.merge(g,h.helpers);l=l||{};var j="",d,i="function",k=this.escapeExpression,r=this;function f(v,u){var s="",t;s+="\n        <h4>Implementation Notes</h4>\n        <p>";if(t=g.notes){t=t.call(v,{hash:{},data:u})}else{t=v.notes;t=typeof t===i?t.apply(v):t}if(t||t===0){s+=t}s+="</p>\n        ";return s}function c(t,s){return'\n          <h4>Response Class</h4>\n          <p><span class="model-signature" /></p>\n          <br/>\n          <div class="response-content-type" />\n        '}function q(t,s){return'\n          <h4>Parameters</h4>\n          <table class=\'fullwidth\'>\n          <thead>\n            <tr>\n            <th style="width: 100px; max-width: 100px">Parameter</th>\n            <th style="width: 310px; max-width: 310px">Value</th>\n            <th style="width: 200px; max-width: 200px">Description</th>\n            <th style="width: 100px; max-width: 100px">Parameter Type</th>\n            <th style="width: 220px; max-width: 230px">Data Type</th>\n            </tr>\n          </thead>\n          <tbody class="operation-params">\n\n          </tbody>\n          </table>\n          '}function p(t,s){return"\n          <div style='margin:0;padding:0;display:inline'></div>\n          <h4>Error Status Codes</h4>\n          <table class='fullwidth'>\n            <thead>\n            <tr>\n              <th>HTTP Status Code</th>\n              <th>Reason</th>\n            </tr>\n            </thead>\n            <tbody class=\"operation-status\">\n            \n            </tbody>\n          </table>\n          "}function o(t,s){return"\n          "}function e(t,s){return"\n          <div class='sandbox_header'>\n            <input class='submit' name='commit' type='button' value='Try it out!' />\n            <a href='#' class='response_hider' style='display:none'>Hide Response</a>\n            <img alt='Throbber' class='response_throbber' src='images/throbber.gif' style='display:none' />\n          </div>\n          "}j+="\n  <ul class='operations' >\n    <li class='";if(d=g.method){d=d.call(n,{hash:{},data:l})}else{d=n.method;d=typeof d===i?d.apply(n):d}j+=k(d)+" operation' id='";if(d=g.resourceName){d=d.call(n,{hash:{},data:l})}else{d=n.resourceName;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.nickname){d=d.call(n,{hash:{},data:l})}else{d=n.nickname;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.method){d=d.call(n,{hash:{},data:l})}else{d=n.method;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.number){d=d.call(n,{hash:{},data:l})}else{d=n.number;d=typeof d===i?d.apply(n):d}j+=k(d)+"'>\n      <div class='heading'>\n        <h3>\n          <span class='http_method'>\n          <a href='#!/";if(d=g.resourceName){d=d.call(n,{hash:{},data:l})}else{d=n.resourceName;d=typeof d===i?d.apply(n):d}j+=k(d)+"/";if(d=g.nickname){d=d.call(n,{hash:{},data:l})}else{d=n.nickname;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.method){d=d.call(n,{hash:{},data:l})}else{d=n.method;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.number){d=d.call(n,{hash:{},data:l})}else{d=n.number;d=typeof d===i?d.apply(n):d}j+=k(d)+'\' class="toggleOperation">';if(d=g.method){d=d.call(n,{hash:{},data:l})}else{d=n.method;d=typeof d===i?d.apply(n):d}j+=k(d)+"</a>\n          </span>\n          <span class='path'>\n          <a href='#!/";if(d=g.resourceName){d=d.call(n,{hash:{},data:l})}else{d=n.resourceName;d=typeof d===i?d.apply(n):d}j+=k(d)+"/";if(d=g.nickname){d=d.call(n,{hash:{},data:l})}else{d=n.nickname;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.method){d=d.call(n,{hash:{},data:l})}else{d=n.method;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.number){d=d.call(n,{hash:{},data:l})}else{d=n.number;d=typeof d===i?d.apply(n):d}j+=k(d)+'\' class="toggleOperation">';if(d=g.path){d=d.call(n,{hash:{},data:l})}else{d=n.path;d=typeof d===i?d.apply(n):d}j+=k(d)+"</a>\n          </span>\n        </h3>\n        <ul class='options'>\n          <li>\n          <a href='#!/";if(d=g.resourceName){d=d.call(n,{hash:{},data:l})}else{d=n.resourceName;d=typeof d===i?d.apply(n):d}j+=k(d)+"/";if(d=g.nickname){d=d.call(n,{hash:{},data:l})}else{d=n.nickname;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.method){d=d.call(n,{hash:{},data:l})}else{d=n.method;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.number){d=d.call(n,{hash:{},data:l})}else{d=n.number;d=typeof d===i?d.apply(n):d}j+=k(d)+'\' class="toggleOperation">';if(d=g.summary){d=d.call(n,{hash:{},data:l})}else{d=n.summary;d=typeof d===i?d.apply(n):d}if(d||d===0){j+=d}j+="</a>\n          </li>\n        </ul>\n      </div>\n      <div class='content' id='";if(d=g.resourceName){d=d.call(n,{hash:{},data:l})}else{d=n.resourceName;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.nickname){d=d.call(n,{hash:{},data:l})}else{d=n.nickname;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.method){d=d.call(n,{hash:{},data:l})}else{d=n.method;d=typeof d===i?d.apply(n):d}j+=k(d)+"_";if(d=g.number){d=d.call(n,{hash:{},data:l})}else{d=n.number;d=typeof d===i?d.apply(n):d}j+=k(d)+"_content' style='display:none'>\n        ";d=g["if"].call(n,n.notes,{hash:{},inverse:r.noop,fn:r.program(1,f,l),data:l});if(d||d===0){j+=d}j+="\n        ";d=g["if"].call(n,n.type,{hash:{},inverse:r.noop,fn:r.program(3,c,l),data:l});if(d||d===0){j+=d}j+="\n        <form accept-charset='UTF-8' class='sandbox'>\n          <div style='margin:0;padding:0;display:inline'></div>\n          ";d=g["if"].call(n,n.parameters,{hash:{},inverse:r.noop,fn:r.program(5,q,l),data:l});if(d||d===0){j+=d}j+="\n          ";d=g["if"].call(n,n.responseMessages,{hash:{},inverse:r.noop,fn:r.program(7,p,l),data:l});if(d||d===0){j+=d}j+="\n          ";d=g["if"].call(n,n.isReadOnly,{hash:{},inverse:r.program(11,e,l),fn:r.program(9,o,l),data:l});if(d||d===0){j+=d}j+="\n        </form>\n        <div class='response' style='display:none'>\n          <h4>Request URL</h4>\n          <div class='block request_url'></div>\n          <h4>Response Body</h4>\n          <div class='block response_body'></div>\n          <h4>Response Code</h4>\n          <div class='block response_code'></div>\n          <h4>Response Headers</h4>\n          <div class='block response_headers'></div>\n        </div>\n      </div>\n    </li>\n  </ul>\n";return j})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param=b(function(f,q,o,j,s){this.compilerInfo=[4,">= 1.0.0"];o=this.merge(o,f.helpers);s=s||{};var p="",g,d="function",c=this.escapeExpression,n=this;function m(x,w){var u="",v;u+="\n         ";v=o["if"].call(x,x.isFile,{hash:{},inverse:n.program(4,k,w),fn:n.program(2,l,w),data:w});if(v||v===0){u+=v}u+="\n     ";return u}function l(x,w){var u="",v;u+='\n                    <input type="file" name=\'';if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+'\'/>\n                 <div class="parameter-content-type" />\n                ';return u}function k(x,w){var u="",v;u+="\n                    ";v=o["if"].call(x,x.defaultValue,{hash:{},inverse:n.program(7,h,w),fn:n.program(5,i,w),data:w});if(v||v===0){u+=v}u+="\n               ";return u}function i(x,w){var u="",v;u+="\n                            <textarea class='body-textarea' name='";if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+"'>";if(v=o.defaultValue){v=v.call(x,{hash:{},data:w})}else{v=x.defaultValue;v=typeof v===d?v.apply(x):v}u+=c(v)+"</textarea>\n                     ";return u}function h(x,w){var u="",v;u+="\n                            <textarea class='body-textarea' name='";if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+'\'></textarea>\n                           <br />\n                                <div class="parameter-content-type" />\n                        ';return u}function e(x,w){var u="",v;u+="\n            ";v=o["if"].call(x,x.defaultValue,{hash:{},inverse:n.program(12,r,w),fn:n.program(10,t,w),data:w});if(v||v===0){u+=v}u+="\n     ";return u}function t(x,w){var u="",v;u+="\n                    <input class='parameter' minlength='0' name='";if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+"' placeholder='' type='text' value='";if(v=o.defaultValue){v=v.call(x,{hash:{},data:w})}else{v=x.defaultValue;v=typeof v===d?v.apply(x):v}u+=c(v)+"'/>\n            ";return u}function r(x,w){var u="",v;u+="\n                    <input class='parameter' minlength='0' name='";if(v=o.name){v=v.call(x,{hash:{},data:w})}else{v=x.name;v=typeof v===d?v.apply(x):v}u+=c(v)+"' placeholder='' type='text' value=''/>\n           ";return u}p+="<td class='code'>";if(g=o.name){g=g.call(q,{hash:{},data:s})}else{g=q.name;g=typeof g===d?g.apply(q):g}p+=c(g)+"</td>\n<td>\n\n  ";g=o["if"].call(q,q.isBody,{hash:{},inverse:n.program(9,e,s),fn:n.program(1,m,s),data:s});if(g||g===0){p+=g}p+="\n\n</td>\n<td>";if(g=o.description){g=g.call(q,{hash:{},data:s})}else{g=q.description;g=typeof g===d?g.apply(q):g}if(g||g===0){p+=g}p+="</td>\n<td>";if(g=o.paramType){g=g.call(q,{hash:{},data:s})}else{g=q.paramType;g=typeof g===d?g.apply(q):g}if(g||g===0){p+=g}p+='</td>\n<td>\n        <span class="model-signature"></span>\n</td>\n';return p})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param_list=b(function(g,r,p,l,w){this.compilerInfo=[4,">= 1.0.0"];p=this.merge(p,g.helpers);w=w||{};var q="",i,e,o=this,d="function",c=this.escapeExpression;function n(y,x){return" multiple='multiple'"}function m(y,x){return"\n    "}function k(A,z){var x="",y;x+="\n      ";y=p["if"].call(A,A.defaultValue,{hash:{},inverse:o.program(8,h,z),fn:o.program(6,j,z),data:z});if(y||y===0){x+=y}x+="\n    ";return x}function j(y,x){return"\n      "}function h(A,z){var x="",y;x+="\n        ";y=p["if"].call(A,A.allowMultiple,{hash:{},inverse:o.program(11,v,z),fn:o.program(9,f,z),data:z});if(y||y===0){x+=y}x+="\n      ";return x}function f(y,x){return"\n         "}function v(y,x){return"\n          <option selected=\"\" value=''></option>\n         "}function u(A,z){var x="",y;x+="\n      ";y=p["if"].call(A,A.isDefault,{hash:{},inverse:o.program(16,s,z),fn:o.program(14,t,z),data:z});if(y||y===0){x+=y}x+="\n    ";return x}function t(A,z){var x="",y;x+='\n        <option selected="" value=\'';if(y=p.value){y=y.call(A,{hash:{},data:z})}else{y=A.value;y=typeof y===d?y.apply(A):y}x+=c(y)+"'>";if(y=p.value){y=y.call(A,{hash:{},data:z})}else{y=A.value;y=typeof y===d?y.apply(A):y}x+=c(y)+" (default)</option>\n      ";return x}function s(A,z){var x="",y;x+="\n        <option value='";if(y=p.value){y=y.call(A,{hash:{},data:z})}else{y=A.value;y=typeof y===d?y.apply(A):y}x+=c(y)+"'>";if(y=p.value){y=y.call(A,{hash:{},data:z})}else{y=A.value;y=typeof y===d?y.apply(A):y}x+=c(y)+"</option>\n      ";return x}q+="<td class='code'>";if(i=p.name){i=i.call(r,{hash:{},data:w})}else{i=r.name;i=typeof i===d?i.apply(r):i}q+=c(i)+"</td>\n<td>\n  <select ";i=p["if"].call(r,r.allowMultiple,{hash:{},inverse:o.noop,fn:o.program(1,n,w),data:w});if(i||i===0){q+=i}q+=" class='parameter' name='";if(i=p.name){i=i.call(r,{hash:{},data:w})}else{i=r.name;i=typeof i===d?i.apply(r):i}q+=c(i)+"'>\n    ";i=p["if"].call(r,r.required,{hash:{},inverse:o.program(5,k,w),fn:o.program(3,m,w),data:w});if(i||i===0){q+=i}q+="\n    ";e=p.each.call(r,((i=r.allowableValues),i==null||i===false?i:i.descriptiveValues),{hash:{},inverse:o.noop,fn:o.program(13,u,w),data:w});if(e||e===0){q+=e}q+="\n  </select>\n</td>\n<td>";if(e=p.description){e=e.call(r,{hash:{},data:w})}else{e=r.description;e=typeof e===d?e.apply(r):e}if(e||e===0){q+=e}q+="</td>\n<td>";if(e=p.paramType){e=e.call(r,{hash:{},data:w})}else{e=r.paramType;e=typeof e===d?e.apply(r):e}if(e||e===0){q+=e}q+='</td>\n<td><span class="model-signature"></span></td>';return q})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param_readonly=b(function(g,m,f,l,k){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);k=k||{};var i="",d,h="function",j=this.escapeExpression,o=this;function e(t,s){var q="",r;q+="\n        <textarea class='body-textarea' readonly='readonly' name='";if(r=f.name){r=r.call(t,{hash:{},data:s})}else{r=t.name;r=typeof r===h?r.apply(t):r}q+=j(r)+"'>";if(r=f.defaultValue){r=r.call(t,{hash:{},data:s})}else{r=t.defaultValue;r=typeof r===h?r.apply(t):r}q+=j(r)+"</textarea>\n    ";return q}function c(t,s){var q="",r;q+="\n        ";r=f["if"].call(t,t.defaultValue,{hash:{},inverse:o.program(6,n,s),fn:o.program(4,p,s),data:s});if(r||r===0){q+=r}q+="\n    ";return q}function p(t,s){var q="",r;q+="\n            ";if(r=f.defaultValue){r=r.call(t,{hash:{},data:s})}else{r=t.defaultValue;r=typeof r===h?r.apply(t):r}q+=j(r)+"\n        ";return q}function n(r,q){return"\n            (empty)\n        "}i+="<td class='code'>";if(d=f.name){d=d.call(m,{hash:{},data:k})}else{d=m.name;d=typeof d===h?d.apply(m):d}i+=j(d)+"</td>\n<td>\n    ";d=f["if"].call(m,m.isBody,{hash:{},inverse:o.program(3,c,k),fn:o.program(1,e,k),data:k});if(d||d===0){i+=d}i+="\n</td>\n<td>";if(d=f.description){d=d.call(m,{hash:{},data:k})}else{d=m.description;d=typeof d===h?d.apply(m):d}if(d||d===0){i+=d}i+="</td>\n<td>";if(d=f.paramType){d=d.call(m,{hash:{},data:k})}else{d=m.paramType;d=typeof d===h?d.apply(m):d}if(d||d===0){i+=d}i+='</td>\n<td><span class="model-signature"></span></td>\n';return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param_readonly_required=b(function(g,m,f,l,k){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);k=k||{};var i="",d,h="function",j=this.escapeExpression,o=this;function e(t,s){var q="",r;q+="\n        <textarea class='body-textarea'  readonly='readonly' placeholder='(required)' name='";if(r=f.name){r=r.call(t,{hash:{},data:s})}else{r=t.name;r=typeof r===h?r.apply(t):r}q+=j(r)+"'>";if(r=f.defaultValue){r=r.call(t,{hash:{},data:s})}else{r=t.defaultValue;r=typeof r===h?r.apply(t):r}q+=j(r)+"</textarea>\n    ";return q}function c(t,s){var q="",r;q+="\n        ";r=f["if"].call(t,t.defaultValue,{hash:{},inverse:o.program(6,n,s),fn:o.program(4,p,s),data:s});if(r||r===0){q+=r}q+="\n    ";return q}function p(t,s){var q="",r;q+="\n            ";if(r=f.defaultValue){r=r.call(t,{hash:{},data:s})}else{r=t.defaultValue;r=typeof r===h?r.apply(t):r}q+=j(r)+"\n        ";return q}function n(r,q){return"\n            (empty)\n        "}i+="<td class='code required'>";if(d=f.name){d=d.call(m,{hash:{},data:k})}else{d=m.name;d=typeof d===h?d.apply(m):d}i+=j(d)+"</td>\n<td>\n    ";d=f["if"].call(m,m.isBody,{hash:{},inverse:o.program(3,c,k),fn:o.program(1,e,k),data:k});if(d||d===0){i+=d}i+="\n</td>\n<td>";if(d=f.description){d=d.call(m,{hash:{},data:k})}else{d=m.description;d=typeof d===h?d.apply(m):d}if(d||d===0){i+=d}i+="</td>\n<td>";if(d=f.paramType){d=d.call(m,{hash:{},data:k})}else{d=m.paramType;d=typeof d===h?d.apply(m):d}if(d||d===0){i+=d}i+='</td>\n<td><span class="model-signature"></span></td>\n';return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.param_required=b(function(f,q,o,j,u){this.compilerInfo=[4,">= 1.0.0"];o=this.merge(o,f.helpers);u=u||{};var p="",g,d="function",c=this.escapeExpression,n=this;function m(z,y){var w="",x;w+="\n              ";x=o["if"].call(z,z.isFile,{hash:{},inverse:n.program(4,k,y),fn:n.program(2,l,y),data:y});if(x||x===0){w+=x}w+="\n     ";return w}function l(z,y){var w="",x;w+='\n                    <input type="file" name=\'';if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"'/>\n          ";return w}function k(z,y){var w="",x;w+="\n                    ";x=o["if"].call(z,z.defaultValue,{hash:{},inverse:n.program(7,h,y),fn:n.program(5,i,y),data:y});if(x||x===0){w+=x}w+="\n               ";return w}function i(z,y){var w="",x;w+="\n                            <textarea class='body-textarea' placeholder='(required)' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"'>";if(x=o.defaultValue){x=x.call(z,{hash:{},data:y})}else{x=z.defaultValue;x=typeof x===d?x.apply(z):x}w+=c(x)+"</textarea>\n                    ";return w}function h(z,y){var w="",x;w+="\n                            <textarea class='body-textarea' placeholder='(required)' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+'\'></textarea>\n                          <br />\n                                <div class="parameter-content-type" />\n                        ';return w}function e(z,y){var w="",x;w+="\n            ";x=o["if"].call(z,z.isFile,{hash:{},inverse:n.program(12,t,y),fn:n.program(10,v,y),data:y});if(x||x===0){w+=x}w+="\n   ";return w}function v(z,y){var w="",x;w+="\n                    <input class='parameter' class='required' type='file' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"'/>\n                ";return w}function t(z,y){var w="",x;w+="\n                    ";x=o["if"].call(z,z.defaultValue,{hash:{},inverse:n.program(15,r,y),fn:n.program(13,s,y),data:y});if(x||x===0){w+=x}w+="\n             ";return w}function s(z,y){var w="",x;w+="\n                            <input class='parameter required' minlength='1' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"' placeholder='(required)' type='text' value='";if(x=o.defaultValue){x=x.call(z,{hash:{},data:y})}else{x=z.defaultValue;x=typeof x===d?x.apply(z):x}w+=c(x)+"'/>\n                 ";return w}function r(z,y){var w="",x;w+="\n                            <input class='parameter required' minlength='1' name='";if(x=o.name){x=x.call(z,{hash:{},data:y})}else{x=z.name;x=typeof x===d?x.apply(z):x}w+=c(x)+"' placeholder='(required)' type='text' value=''/>\n                        ";return w}p+="<td class='code required'>";if(g=o.name){g=g.call(q,{hash:{},data:u})}else{g=q.name;g=typeof g===d?g.apply(q):g}p+=c(g)+"</td>\n<td>\n   ";g=o["if"].call(q,q.isBody,{hash:{},inverse:n.program(9,e,u),fn:n.program(1,m,u),data:u});if(g||g===0){p+=g}p+="\n</td>\n<td>\n        <strong>";if(g=o.description){g=g.call(q,{hash:{},data:u})}else{g=q.description;g=typeof g===d?g.apply(q):g}if(g||g===0){p+=g}p+="</strong>\n</td>\n<td>";if(g=o.paramType){g=g.call(q,{hash:{},data:u})}else{g=q.paramType;g=typeof g===d?g.apply(q):g}if(g||g===0){p+=g}p+='</td>\n<td><span class="model-signature"></span></td>\n';return p})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.parameter_content_type=b(function(g,l,f,k,j){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);j=j||{};var i="",c,h="function",m=this;function e(r,q){var o="",p;o+="\n  ";p=f.each.call(r,r.consumes,{hash:{},inverse:m.noop,fn:m.program(2,d,q),data:q});if(p||p===0){o+=p}o+="\n";return o}function d(r,q){var o="",p;o+='\n  <option value="';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+='">';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+="</option>\n  ";return o}function n(p,o){return'\n  <option value="application/json">application/json</option>\n'}i+='<label for="parameterContentType"></label>\n<select name="parameterContentType">\n';c=f["if"].call(l,l.consumes,{hash:{},inverse:m.program(4,n,j),fn:m.program(1,e,j),data:j});if(c||c===0){i+=c}i+="\n</select>\n";return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.resource=b(function(f,l,e,k,j){this.compilerInfo=[4,">= 1.0.0"];e=this.merge(e,f.helpers);j=j||{};var h="",c,o,g="function",i=this.escapeExpression,n=this,m=e.blockHelperMissing;function d(q,p){return" : "}h+="<div class='heading'>\n  <h2>\n    <a href='#!/";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"' onclick=\"Docs.toggleEndpointListForResource('";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"');\">";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"</a> ";o={hash:{},inverse:n.noop,fn:n.program(1,d,j),data:j};if(c=e.description){c=c.call(l,o)}else{c=l.description;c=typeof c===g?c.apply(l):c}if(!e.description){c=m.call(l,c,o)}if(c||c===0){h+=c}if(c=e.description){c=c.call(l,{hash:{},data:j})}else{c=l.description;c=typeof c===g?c.apply(l):c}if(c||c===0){h+=c}h+="\n  </h2>\n  <ul class='options'>\n    <li>\n      <a href='#!/";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"' id='endpointListTogger_";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"'\n         onclick=\"Docs.toggleEndpointListForResource('";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"');\">Show/Hide</a>\n    </li>\n    <li>\n      <a href='#' onclick=\"Docs.collapseOperationsForResource('";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"'); return false;\">\n        List Operations\n      </a>\n    </li>\n    <li>\n      <a href='#' onclick=\"Docs.expandOperationsForResource('";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"'); return false;\">\n        Expand Operations\n      </a>\n    </li>\n    <li>\n      <a href='";if(c=e.url){c=c.call(l,{hash:{},data:j})}else{c=l.url;c=typeof c===g?c.apply(l):c}h+=i(c)+"'>Raw</a>\n    </li>\n  </ul>\n</div>\n<ul class='endpoints' id='";if(c=e.name){c=c.call(l,{hash:{},data:j})}else{c=l.name;c=typeof c===g?c.apply(l):c}h+=i(c)+"_endpoint_list' style='display:none'>\n\n</ul>\n";return h})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.response_content_type=b(function(g,l,f,k,j){this.compilerInfo=[4,">= 1.0.0"];f=this.merge(f,g.helpers);j=j||{};var i="",c,h="function",m=this;function e(r,q){var o="",p;o+="\n  ";p=f.each.call(r,r.produces,{hash:{},inverse:m.noop,fn:m.program(2,d,q),data:q});if(p||p===0){o+=p}o+="\n";return o}function d(r,q){var o="",p;o+='\n  <option value="';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+='">';p=(typeof r===h?r.apply(r):r);if(p||p===0){o+=p}o+="</option>\n  ";return o}function n(p,o){return'\n  <option value="application/json">application/json</option>\n'}i+='<label for="responseContentType"></label>\n<select name="responseContentType">\n';c=f["if"].call(l,l.produces,{hash:{},inverse:m.program(4,n,j),fn:m.program(1,e,j),data:j});if(c||c===0){i+=c}i+="\n</select>\n";return i})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.signature=b(function(e,k,d,j,i){this.compilerInfo=[4,">= 1.0.0"];d=this.merge(d,e.helpers);i=i||{};var g="",c,f="function",h=this.escapeExpression;g+='<div>\n<ul class="signature-nav">\n    <li><a class="description-link" href="#">Model</a></li>\n    <li><a class="snippet-link" href="#">Model Schema</a></li>\n</ul>\n<div>\n\n<div class="signature-container">\n    <div class="description">\n        ';if(c=d.signature){c=c.call(k,{hash:{},data:i})}else{c=k.signature;c=typeof c===f?c.apply(k):c}if(c||c===0){g+=c}g+='\n    </div>\n\n    <div class="snippet">\n        <pre><code>';if(c=d.sampleJSON){c=c.call(k,{hash:{},data:i})}else{c=k.sampleJSON;c=typeof c===f?c.apply(k):c}g+=h(c)+'</code></pre>\n        <small class="notice"></small>\n    </div>\n</div>\n\n';return g})})();(function(){var b=Handlebars.template,a=Handlebars.templates=Handlebars.templates||{};a.status_code=b(function(e,k,d,j,i){this.compilerInfo=[4,">= 1.0.0"];d=this.merge(d,e.helpers);i=i||{};var g="",c,f="function",h=this.escapeExpression;g+="<td width='15%' class='code'>";if(c=d.code){c=c.call(k,{hash:{},data:i})}else{c=k.code;c=typeof c===f?c.apply(k):c}g+=h(c)+"</td>\n<td>";if(c=d.message){c=c.call(k,{hash:{},data:i})}else{c=k.message;c=typeof c===f?c.apply(k):c}if(c||c===0){g+=c}g+="</td>\n";return g})})();(function(){var j,r,u,o,l,k,n,m,i,p,s,q,h,c,g,f,e,d,b,a,x,w,t={}.hasOwnProperty,v=function(B,z){for(var y in z){if(t.call(z,y)){B[y]=z[y]}}function A(){this.constructor=B}A.prototype=z.prototype;B.prototype=new A();B.__super__=z.prototype;return B};s=(function(z){v(y,z);function y(){q=y.__super__.constructor.apply(this,arguments);return q}y.prototype.dom_id="swagger_ui";y.prototype.options=null;y.prototype.api=null;y.prototype.headerView=null;y.prototype.mainView=null;y.prototype.initialize=function(A){var B=this;if(A==null){A={}}if(A.dom_id!=null){this.dom_id=A.dom_id;delete A.dom_id}if($("#"+this.dom_id)==null){$("body").append('<div id="'+this.dom_id+'"></div>')}this.options=A;this.options.success=function(){return B.render()};this.options.progress=function(C){return B.showMessage(C)};this.options.failure=function(C){return B.onLoadFailure(C)};this.headerView=new r({el:$("#header")});return this.headerView.on("update-swagger-ui",function(C){return B.updateSwaggerUi(C)})};y.prototype.updateSwaggerUi=function(A){this.options.url=A.url;return this.load()};y.prototype.load=function(){var B,A;if((A=this.mainView)!=null){A.clear()}B=this.options.url;if(B.indexOf("http")!==0){B=this.buildUrl(window.location.href.toString(),B)}this.options.url=B;this.headerView.update(B);this.api=new SwaggerApi(this.options);this.api.build();return this.api};y.prototype.render=function(){var A=this;this.showMessage("Finished Loading Resource Information. Rendering Swagger UI...");this.mainView=new u({model:this.api,el:$("#"+this.dom_id)}).render();this.showMessage();switch(this.options.docExpansion){case"full":Docs.expandOperationsForResource("");break;case"list":Docs.collapseOperationsForResource("")}if(this.options.onComplete){this.options.onComplete(this.api,this)}return setTimeout(function(){return Docs.shebang()},400)};y.prototype.buildUrl=function(B,A){var C;console.log("base is "+B);C=B.split("/");B=C[0]+"//"+C[2];if(A.indexOf("/")===0){return B+A}else{return B+"/"+A}};y.prototype.showMessage=function(A){if(A==null){A=""}$("#message-bar").removeClass("message-fail");$("#message-bar").addClass("message-success");return $("#message-bar").html(A)};y.prototype.onLoadFailure=function(A){var B;if(A==null){A=""}$("#message-bar").removeClass("message-success");$("#message-bar").addClass("message-fail");B=$("#message-bar").html(A);if(this.options.onFailure!=null){this.options.onFailure(A)}return B};return y})(Backbone.Router);window.SwaggerUi=s;r=(function(z){v(y,z);function y(){h=y.__super__.constructor.apply(this,arguments);return h}y.prototype.events={"click #show-pet-store-icon":"showPetStore","click #show-wordnik-dev-icon":"showWordnikDev","click #explore":"showCustom","keyup #input_baseUrl":"showCustomOnKeyup","keyup #input_apiKey":"showCustomOnKeyup"};y.prototype.initialize=function(){};y.prototype.showPetStore=function(A){return this.trigger("update-swagger-ui",{url:"http://petstore.swagger.wordnik.com/api/api-docs"})};y.prototype.showWordnikDev=function(A){return this.trigger("update-swagger-ui",{url:"http://api.wordnik.com/v4/resources.json"})};y.prototype.showCustomOnKeyup=function(A){if(A.keyCode===13){return this.showCustom()}};y.prototype.showCustom=function(A){if(A!=null){A.preventDefault()}return this.trigger("update-swagger-ui",{url:$("#input_baseUrl").val(),apiKey:$("#input_apiKey").val()})};y.prototype.update=function(B,C,A){if(A==null){A=false}$("#input_baseUrl").val(B);if(A){return this.trigger("update-swagger-ui",{url:B})}};return y})(Backbone.View);u=(function(y){v(z,y);function z(){g=z.__super__.constructor.apply(this,arguments);return g}z.prototype.initialize=function(){};z.prototype.render=function(){var C,B,A,D;$(this.el).html(Handlebars.templates.main(this.model));D=this.model.apisArray;for(B=0,A=D.length;B<A;B++){C=D[B];this.addResource(C)}return this};z.prototype.addResource=function(B){var A;A=new n({model:B,tagName:"li",id:"resource_"+B.name,className:"resource"});return $("#resources").append(A.render().el)};z.prototype.clear=function(){return $(this.el).html("")};return z})(Backbone.View);n=(function(z){v(y,z);function y(){f=y.__super__.constructor.apply(this,arguments);return f}y.prototype.initialize=function(){};y.prototype.render=function(){var B,C,A,D;console.log(this.model.description);$(this.el).html(Handlebars.templates.resource(this.model));this.number=0;D=this.model.operationsArray;for(C=0,A=D.length;C<A;C++){B=D[C];this.addOperation(B)}return this};y.prototype.addOperation=function(A){var B;A.number=this.number;B=new o({model:A,tagName:"li",className:"endpoint"});$(".endpoints",$(this.el)).append(B.render().el);return this.number++};return y})(Backbone.View);o=(function(z){v(y,z);function y(){e=y.__super__.constructor.apply(this,arguments);return e}y.prototype.invocationUrl=null;y.prototype.events={"submit .sandbox":"submitOperation","click .submit":"submitOperation","click .response_hider":"hideResponse","click .toggleOperation":"toggleOperationContent"};y.prototype.initialize=function(){};y.prototype.render=function(){var A,P,G,M,K,Q,L,N,J,I,H,O,E,C,F,D,B;P=true;if(!P){this.model.isReadOnly=true}$(this.el).html(Handlebars.templates.operation(this.model));if(this.model.responseClassSignature&&this.model.responseClassSignature!=="string"){Q={sampleJSON:this.model.responseSampleJSON,isParam:false,signature:this.model.responseClassSignature};K=new i({model:Q,tagName:"div"});$(".model-signature",$(this.el)).append(K.render().el)}else{$(".model-signature",$(this.el)).html(this.model.type)}A={isParam:false};A.consumes=this.model.consumes;A.produces=this.model.produces;F=this.model.parameters;for(J=0,O=F.length;J<O;J++){G=F[J];N=G.type||G.dataType;if(N.toLowerCase()==="file"){if(!A.consumes){console.log("set content type ");A.consumes="multipart/form-data"}}}M=new m({model:A});$(".response-content-type",$(this.el)).append(M.render().el);D=this.model.parameters;for(I=0,E=D.length;I<E;I++){G=D[I];this.addParameter(G,A.consumes)}B=this.model.responseMessages;for(H=0,C=B.length;H<C;H++){L=B[H];this.addStatusCode(L)}return this};y.prototype.addParameter=function(C,A){var B;C.consumes=A;B=new k({model:C,tagName:"tr",readOnly:this.model.isReadOnly});return $(".operation-params",$(this.el)).append(B.render().el)};y.prototype.addStatusCode=function(B){var A;A=new p({model:B,tagName:"tr"});return $(".operation-status",$(this.el)).append(A.render().el)};y.prototype.submitOperation=function(O){var Q,G,N,D,I,A,J,M,L,K,P,F,C,H,E,B;if(O!=null){O.preventDefault()}G=$(".sandbox",$(this.el));Q=true;G.find("input.required").each(function(){var R=this;$(this).removeClass("error");if(jQuery.trim($(this).val())===""){$(this).addClass("error");$(this).wiggle({callback:function(){return $(R).focus()}});return Q=false}});if(Q){D={};A={parent:this};N=false;H=G.find("input");for(M=0,P=H.length;M<P;M++){I=H[M];if((I.value!=null)&&jQuery.trim(I.value).length>0){D[I.name]=I.value}if(I.type==="file"){N=true}}E=G.find("textarea");for(L=0,F=E.length;L<F;L++){I=E[L];if((I.value!=null)&&jQuery.trim(I.value).length>0){D.body=I.value}}B=G.find("select");for(K=0,C=B.length;K<C;K++){I=B[K];J=this.getSelectedValue(I);if((J!=null)&&jQuery.trim(J).length>0){D[I.name]=J}}A.responseContentType=$("div select[name=responseContentType]",$(this.el)).val();A.requestContentType=$("div select[name=parameterContentType]",$(this.el)).val();$(".response_throbber",$(this.el)).show();if(N){return this.handleFileUpload(D,G)}else{return this.model["do"](D,A,this.showCompleteStatus,this.showErrorStatus,this)}}};y.prototype.success=function(A,B){return B.showCompleteStatus(A)};y.prototype.handleFileUpload=function(C,F){var Q,P,H,M,I,L,K,J,O,E,B,G,D,A,N=this;console.log("it's a file upload");G=F.serializeArray();for(L=0,O=G.length;L<O;L++){H=G[L];if((H.value!=null)&&jQuery.trim(H.value).length>0){C[H.name]=H.value}}Q=new FormData();D=this.model.parameters;for(K=0,E=D.length;K<E;K++){I=D[K];if(I.paramType==="form"){Q.append(I.name,C[I.name])}}P={};A=this.model.parameters;for(J=0,B=A.length;J<B;J++){I=A[J];if(I.paramType==="header"){P[I.name]=C[I.name]}}console.log(P);$.each($('input[type~="file"]'),function(R,S){return Q.append($(S).attr("name"),S.files[0])});console.log(Q);this.invocationUrl=this.model.supportHeaderParams()?(P=this.model.getHeaderParams(C),this.model.urlify(C,false)):this.model.urlify(C,true);$(".request_url",$(this.el)).html("<pre>"+this.invocationUrl+"</pre>");M={type:this.model.method,url:this.invocationUrl,headers:P,data:Q,dataType:"json",contentType:false,processData:false,error:function(S,T,R){return N.showErrorStatus(N.wrap(S),N)},success:function(R){return N.showResponse(R,N)},complete:function(R){return N.showCompleteStatus(N.wrap(R),N)}};if(window.authorizations){window.authorizations.apply(M)}jQuery.ajax(M);return false};y.prototype.wrap=function(A){var B,C=this;B={};B.content={};B.content.data=A.responseText;B.getHeaders=function(){return{"Content-Type":A.getResponseHeader("Content-Type")}};B.request={};B.request.url=this.invocationUrl;B.status=A.status;return B};y.prototype.getSelectedValue=function(A){var D,C,F,B,E;if(!A.multiple){return A.value}else{C=[];E=A.options;for(F=0,B=E.length;F<B;F++){D=E[F];if(D.selected){C.push(D.value)}}if(C.length>0){return C.join(",")}else{return null}}};y.prototype.hideResponse=function(A){if(A!=null){A.preventDefault()}$(".response",$(this.el)).slideUp();return $(".response_hider",$(this.el)).fadeOut()};y.prototype.showResponse=function(A){var B;B=JSON.stringify(A,null,"\t").replace(/\n/g,"<br>");return $(".response_body",$(this.el)).html(escape(B))};y.prototype.showErrorStatus=function(B,A){return A.showStatus(B)};y.prototype.showCompleteStatus=function(B,A){return A.showStatus(B)};y.prototype.formatXml=function(H){var D,G,B,I,N,J,C,A,L,M,F,E,K;A=/(>)(<)(\/*)/g;M=/[ ]*(.*)[ ]+\n/g;D=/(<.+>)(.+\n)/g;H=H.replace(A,"$1\n$2$3").replace(M,"$1\n").replace(D,"$1\n$2");C=0;G="";N=H.split("\n");B=0;I="other";L={"single->single":0,"single->closing":-1,"single->opening":0,"single->other":0,"closing->single":0,"closing->closing":-1,"closing->opening":0,"closing->other":0,"opening->single":1,"opening->closing":0,"opening->opening":1,"opening->other":1,"other->single":0,"other->closing":-1,"other->opening":0,"other->other":0};F=function(T){var P,O,R,V,S,Q,U;Q={single:Boolean(T.match(/<.+\/>/)),closing:Boolean(T.match(/<\/.+>/)),opening:Boolean(T.match(/<[^!?].*>/))};S=((function(){var W;W=[];for(R in Q){U=Q[R];if(U){W.push(R)}}return W})())[0];S=S===void 0?"other":S;P=I+"->"+S;I=S;V="";B+=L[P];V=((function(){var X,Y,W;W=[];for(O=X=0,Y=B;0<=Y?X<Y:X>Y;O=0<=Y?++X:--X){W.push("  ")}return W})()).join("");if(P==="opening->closing"){return G=G.substr(0,G.length-1)+T+"\n"}else{return G+=V+T+"\n"}};for(E=0,K=N.length;E<K;E++){J=N[E];F(J)}return G};y.prototype.showStatus=function(D){var C,B,G,F,E,A;B=D.content.data;F=D.getHeaders();G=F["Content-Type"];if(B===void 0){C=$("<code />").text("no content");E=$('<pre class="json" />').append(C)}else{if(G.indexOf("application/json")===0||G.indexOf("application/hal+json")===0){C=$("<code />").text(JSON.stringify(JSON.parse(B),null,2));E=$('<pre class="json" />').append(C)}else{if(G.indexOf("application/xml")===0){C=$("<code />").text(this.formatXml(B));E=$('<pre class="xml" />').append(C)}else{if(G.indexOf("text/html")===0){C=$("<code />").html(B);E=$('<pre class="xml" />').append(C)}else{if(G.indexOf("image/")===0){E=$("<img>").attr("src",D.request.url)}else{C=$("<code />").text(B);E=$('<pre class="json" />').append(C)}}}}}A=E;$(".request_url",$(this.el)).html("<pre>"+D.request.url+"</pre>");$(".response_code",$(this.el)).html("<pre>"+D.status+"</pre>");$(".response_body",$(this.el)).html(A);$(".response_headers",$(this.el)).html("<pre>"+JSON.stringify(D.getHeaders(),null,"  ").replace(/\n/g,"<br>")+"</pre>");$(".response",$(this.el)).slideDown();$(".response_hider",$(this.el)).show();$(".response_throbber",$(this.el)).hide();return hljs.highlightBlock($(".response_body",$(this.el))[0])};y.prototype.toggleOperationContent=function(){var A;A=$("#"+Docs.escapeResourceName(this.model.resourceName)+"_"+this.model.nickname+"_"+this.model.method+"_"+this.model.number+"_content");if(A.is(":visible")){return Docs.collapseOperation(A)}else{return Docs.expandOperation(A)}};return y})(Backbone.View);p=(function(z){v(y,z);function y(){d=y.__super__.constructor.apply(this,arguments);return d}y.prototype.initialize=function(){};y.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));return this};y.prototype.template=function(){return Handlebars.templates.status_code};return y})(Backbone.View);k=(function(z){v(y,z);function y(){b=y.__super__.constructor.apply(this,arguments);return b}y.prototype.initialize=function(){};y.prototype.render=function(){var G,A,C,F,B,H,E,D;D=this.model.type||this.model.dataType;if(this.model.paramType==="body"){this.model.isBody=true}if(D.toLowerCase()==="file"){this.model.isFile=true}E=this.template();$(this.el).html(E(this.model));B={sampleJSON:this.model.sampleJSON,isParam:true,signature:this.model.signature};if(this.model.sampleJSON){H=new i({model:B,tagName:"div"});$(".model-signature",$(this.el)).append(H.render().el)}else{$(".model-signature",$(this.el)).html(this.model.signature)}A=false;if(this.model.isBody){A=true}G={isParam:A};G.consumes=this.model.consumes;if(A){C=new l({model:G});$(".parameter-content-type",$(this.el)).append(C.render().el)}else{F=new m({model:G});$(".response-content-type",$(this.el)).append(F.render().el)}return this};y.prototype.template=function(){if(this.model.isList){return Handlebars.templates.param_list}else{if(this.options.readOnly){if(this.model.required){return Handlebars.templates.param_readonly_required}else{return Handlebars.templates.param_readonly}}else{if(this.model.required){return Handlebars.templates.param_required}else{return Handlebars.templates.param}}}};return y})(Backbone.View);i=(function(z){v(y,z);function y(){a=y.__super__.constructor.apply(this,arguments);return a}y.prototype.events={"click a.description-link":"switchToDescription","click a.snippet-link":"switchToSnippet","mousedown .snippet":"snippetToTextArea"};y.prototype.initialize=function(){};y.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));this.switchToDescription();this.isParam=this.model.isParam;if(this.isParam){$(".notice",$(this.el)).text("Click to set as parameter value")}return this};y.prototype.template=function(){return Handlebars.templates.signature};y.prototype.switchToDescription=function(A){if(A!=null){A.preventDefault()}$(".snippet",$(this.el)).hide();$(".description",$(this.el)).show();$(".description-link",$(this.el)).addClass("selected");return $(".snippet-link",$(this.el)).removeClass("selected")};y.prototype.switchToSnippet=function(A){if(A!=null){A.preventDefault()}$(".description",$(this.el)).hide();$(".snippet",$(this.el)).show();$(".snippet-link",$(this.el)).addClass("selected");return $(".description-link",$(this.el)).removeClass("selected")};y.prototype.snippetToTextArea=function(A){var B;if(this.isParam){if(A!=null){A.preventDefault()}B=$("textarea",$(this.el.parentNode.parentNode.parentNode));if($.trim(B.val())===""){return B.val(this.model.sampleJSON)}}};return y})(Backbone.View);j=(function(y){v(z,y);function z(){x=z.__super__.constructor.apply(this,arguments);return x}z.prototype.initialize=function(){};z.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));$("label[for=contentType]",$(this.el)).text("Response Content Type");return this};z.prototype.template=function(){return Handlebars.templates.content_type};return z})(Backbone.View);m=(function(y){v(z,y);function z(){w=z.__super__.constructor.apply(this,arguments);return w}z.prototype.initialize=function(){};z.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));$("label[for=responseContentType]",$(this.el)).text("Response Content Type");return this};z.prototype.template=function(){return Handlebars.templates.response_content_type};return z})(Backbone.View);l=(function(z){v(y,z);function y(){c=y.__super__.constructor.apply(this,arguments);return c}y.prototype.initialize=function(){};y.prototype.render=function(){var A;A=this.template();$(this.el).html(A(this.model));$("label[for=parameterContentType]",$(this.el)).text("Parameter content type:");return this};y.prototype.template=function(){return Handlebars.templates.parameter_content_type};return y})(Backbone.View)}).call(this);
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/DocGeneratorTest.java b/opendaylight/md-sal/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/DocGeneratorTest.java
new file mode 100644 (file)
index 0000000..127529a
--- /dev/null
@@ -0,0 +1,72 @@
+package org.opendaylight.controller.sal.rest.doc.impl;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule;
+import com.google.common.base.Preconditions;
+import junit.framework.Assert;
+import org.junit.Test;
+import org.junit.Before;
+import org.junit.After;
+import org.opendaylight.controller.sal.rest.doc.swagger.ApiDeclaration;
+import org.opendaylight.yangtools.yang.model.api.Module;
+import org.opendaylight.yangtools.yang.model.parser.api.YangModelParser;
+import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ *
+ */
+public class DocGeneratorTest {
+
+  private Set<Module> modules;
+  private ObjectMapper mapper;
+
+  public Set<Module> loadModules(String resourceDirectory) throws FileNotFoundException, URISyntaxException {
+
+    URI resourceDirUri = getClass().getResource(resourceDirectory).toURI();
+    final YangModelParser parser = new YangParserImpl();
+    final File testDir = new File(resourceDirUri);
+    final String[] fileList = testDir.list();
+    final List<File> testFiles = new ArrayList<>();
+    if (fileList == null) {
+      throw new FileNotFoundException(resourceDirectory.toString());
+    }
+    for (String fileName : fileList) {
+
+      testFiles.add(new File(testDir, fileName));
+    }
+    return parser.parseYangModels(testFiles);
+  }
+
+  @Before
+  public void before() throws Exception {
+    modules = loadModules("/yang");
+    mapper = new ObjectMapper();
+    mapper.registerModule(new JsonOrgModule());
+  }
+
+  @After
+  public void after() throws Exception {
+  }
+
+  /**
+   * Method: getApiDeclaration(String module, String revision, UriInfo uriInfo)
+   */
+  @Test
+  public void testGetModuleDoc() throws Exception {
+    Preconditions.checkArgument(modules != null, "No modules found");
+
+    for (Module m : modules){
+      ApiDeclaration doc = ApiDocGenerator.getInstance().getSwaggerDocSpec(m, "http://localhost:8080/restconf");
+      Assert.assertNotNull(doc);
+    }
+  }
+
+} 
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/test/resources/sample-swagger-spec.json b/opendaylight/md-sal/sal-rest-docgen/src/test/resources/sample-swagger-spec.json
new file mode 100644 (file)
index 0000000..2d1b09a
--- /dev/null
@@ -0,0 +1,440 @@
+{
+    "apiVersion": "1.0.0",
+    "swaggerVersion": "1.2",
+    "basePath": "/api",
+    "resourcePath": "/pet",
+    "produces": [
+        "application/json",
+        "application/xml",
+        "text/plain",
+        "text/html"
+    ],
+    "authorizations": {
+        "oauth2": [
+            {
+                "scope": "write:pets",
+                "description": "modify pets in your account"
+            },
+            {
+                "scope": "read:pets",
+                "description": "read your pets"
+            }
+        ]
+    },
+    "apis": [
+        {
+            "path": "/pet",
+            "operations": [
+                {
+                    "method": "POST",
+                    "summary": "Add a new pet to the store",
+                    "notes": "",
+                    "type": "void",
+                    "nickname": "addPet",
+                    "consumes": [
+                        "application/json",
+                        "application/xml"
+                    ],
+                    "authorizations": {
+                        "oauth2": [
+                            {
+                                "scope": "write:pets",
+                                "description": "modify pets in your account"
+                            }
+                        ]
+                    },
+                    "parameters": [
+                        {
+                            "name": "body",
+                            "description": "Pet object that needs to be added to the store",
+                            "required": true,
+                            "type": "Pet",
+                            "paramType": "body"
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                },
+                {
+                    "method": "PUT",
+                    "summary": "Update an existing pet",
+                    "notes": "",
+                    "type": "void",
+                    "nickname": "updatePet",
+                    "authorizations": {},
+                    "parameters": [
+                        {
+                            "name": "body",
+                            "description": "Pet object that needs to be updated in the store",
+                            "required": true,
+                            "type": "Pet",
+                            "paramType": "body"
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Pet not found"
+                        },
+                        {
+                            "code": 405,
+                            "message": "Validation exception"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "path": "/pet/findByStatus",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Finds Pets by status",
+                    "notes": "<strong>Multiple status values can be provided with comma seperated strings</strong>",
+                    "type": "array",
+                    "items": {
+                        "$ref": "Pet"
+                    },
+                    "nickname": "testNodeType",
+                    "authorizations": {},
+                    "parameters": [
+                        {
+                            "name": "nodeTypez",
+                            "description": "Status values that need to be considered for filter",
+                            "defaultValue": "available",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query",
+                            "enum": [
+                                "available",
+                                "pending",
+                                "sold"
+                            ]
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid status value"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "path": "/pet/findByTags",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Finds Pets by tags",
+                    "notes": "Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing.",
+                    "type": "array",
+                    "items": {
+                        "$ref": "Pet"
+                    },
+                    "nickname": "findPetsByTags",
+                    "authorizations": {},
+                    "parameters": [
+                        {
+                            "name": "tags",
+                            "description": "Tags to filter by",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "query"
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid tag value"
+                        }
+                    ],
+                    "deprecated": "true"
+                }
+            ]
+        },
+        {
+            "path": "/pet/{petId}",
+            "operations": [
+                {
+                    "method": "PATCH",
+                    "summary": "partial updates to a pet",
+                    "notes": "",
+                    "type": "array",
+                    "items": {
+                        "$ref": "Pet"
+                    },
+                    "nickname": "partialUpdate",
+                    "produces": [
+                        "application/json",
+                        "application/xml"
+                    ],
+                    "consumes": [
+                        "application/json",
+                        "application/xml"
+                    ],
+                    "authorizations": {
+                        "oauth2": [
+                            {
+                                "scope": "write:pets",
+                                "description": "modify pets in your account"
+                            }
+                        ]
+                    },
+                    "parameters": [
+                        {
+                            "name": "petId",
+                            "description": "ID of pet that needs to be fetched",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "path"
+                        },
+                        {
+                            "name": "body",
+                            "description": "Pet object that needs to be added to the store",
+                            "required": true,
+                            "type": "Pet",
+                            "paramType": "body"
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid tag value"
+                        }
+                    ]
+                },
+                {
+                    "method": "POST",
+                    "summary": "Updates a pet in the store with form data",
+                    "notes": "",
+                    "type": "void",
+                    "nickname": "updatePetWithForm",
+                    "consumes": [
+                        "application/x-www-form-urlencoded"
+                    ],
+                    "authorizations": {
+                        "oauth2": [
+                            {
+                                "scope": "write:pets",
+                                "description": "modify pets in your account"
+                            }
+                        ]
+                    },
+                    "parameters": [
+                        {
+                            "name": "petId",
+                            "description": "ID of pet that needs to be updated",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "path"
+                        },
+                        {
+                            "name": "name",
+                            "description": "Updated name of the pet",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form"
+                        },
+                        {
+                            "name": "status",
+                            "description": "Updated status of the pet",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form"
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                },
+                {
+                    "method": "DELETE",
+                    "summary": "Deletes a pet",
+                    "notes": "",
+                    "type": "void",
+                    "nickname": "deletePet",
+                    "authorizations": {
+                        "oauth2": [
+                            {
+                                "scope": "write:pets",
+                                "description": "modify pets in your account"
+                            }
+                        ]
+                    },
+                    "parameters": [
+                        {
+                            "name": "petId",
+                            "description": "Pet id to delete",
+                            "required": true,
+                            "type": "string",
+                            "paramType": "path"
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid pet value"
+                        }
+                    ]
+                },
+                {
+                    "method": "GET",
+                    "summary": "Find pet by ID",
+                    "notes": "Returns a pet based on ID",
+                    "type": "Pet",
+                    "nickname": "getPetById",
+                    "authorizations": {},
+                    "parameters": [
+                        {
+                            "name": "petId",
+                            "description": "ID of pet that needs to be fetched",
+                            "required": true,
+                            "type": "integer",
+                            "format": "int64",
+                            "paramType": "path",
+                            "minimum": "1.0",
+                            "maximum": "100000.0"
+                        }
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 400,
+                            "message": "Invalid ID supplied"
+                        },
+                        {
+                            "code": 404,
+                            "message": "Pet not found"
+                        }
+                    ]
+                }
+            ]
+        },
+        {
+            "path": "/pet/uploadImage",
+            "operations": [
+                {
+                    "method": "POST",
+                    "summary": "uploads an image",
+                    "notes": "",
+                    "type": "void",
+                    "nickname": "uploadFile",
+                    "consumes": [
+                        "multipart/form-data"
+                    ],
+                    "authorizations": {
+                        "oauth2": [
+                            {
+                                "scope": "write:pets",
+                                "description": "modify pets in your account"
+                            },
+                            {
+                                "scope": "read:pets",
+                                "description": "read your pets"
+                            }
+                        ]
+                    },
+                    "parameters": [
+                        {
+                            "name": "additionalMetadata",
+                            "description": "Additional data to pass to server",
+                            "required": false,
+                            "type": "string",
+                            "paramType": "form"
+                        },
+                        {
+                            "name": "file",
+                            "description": "file to upload",
+                            "required": false,
+                            "type": "File",
+                            "paramType": "body"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Tag": {
+            "id": "Tag",
+            "properties": {
+                "id": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
+        "Pet": {
+            "id": "Pet",
+            "required": [
+                "id",
+                "name"
+            ],
+            "properties": {
+                "id": {
+                    "type": "integer",
+                    "format": "int64",
+                    "description": "unique identifier for the pet",
+                    "minimum": "0.0",
+                    "maximum": "100.0"
+                },
+                "category": {
+                    "$ref": "Category"
+                },
+                "name": {
+                    "type": "string"
+                },
+                "photoUrls": {
+                    "type": "array",
+                    "items": {
+                        "type": "string"
+                    }
+                },
+                "tags": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "Tag"
+                    }
+                },
+                "status": {
+                    "type": "string",
+                    "description": "pet status in the store",
+                    "enum": [
+                        "available",
+                        "pending",
+                        "sold"
+                    ]
+                }
+            }
+        },
+        "Category": {
+            "id": "Category",
+            "properties": {
+                "id": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "name": {
+                    "type": "string"
+                },
+                "pet": {
+                    "$ref": "Pet"
+                }
+            }
+        }
+    }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/test/resources/toaster.json b/opendaylight/md-sal/sal-rest-docgen/src/test/resources/toaster.json
new file mode 100644 (file)
index 0000000..8af2462
--- /dev/null
@@ -0,0 +1,167 @@
+{
+  "apiVersion": "1.0.0",
+  "swaggerVersion": "1.2",
+  "basePath": "/api",
+  "resourcePath": "/toaster",
+  "produces": [
+    "application/json",
+    "application/xml",
+    "text/plain",
+    "text/html"
+  ],
+  "apis": [
+    {
+      "path": "/toaster",
+      "operations": [
+        {
+          "method": "POST",
+          "summary": "Add a new toaster",
+          "notes": "",
+          "type": "void",
+          "nickname": "add toaster",
+          "consumes": [
+            "application/json",
+            "application/xml"
+          ],          
+          "parameters": [
+            {
+              "name": "body",
+              "description": "Pet object that needs to be added to the store",
+              "required": true,
+              "type": "Toaster",
+              "paramType": "body"
+            }
+          ],
+          "responseMessages": [
+            {
+              "code": 405,
+              "message": "Invalid input"
+            }
+          ]
+        }
+      ]
+     },
+    {
+      "path": "/toaster",
+      "operations": [
+        {
+          "method": "GET",
+          "summary": "Add a new toaster",
+          "notes": "",
+          "type": "Toaster",
+          "nickname": "Get toaster",
+          "consumes": [
+            "application/json",
+            "application/xml"
+          ],          
+          "responseMessages": [
+            {
+              "code": 405,
+              "message": "Invalid input"
+            }
+          ]
+        }
+      ]
+     },
+       {
+           "path" : "operations/toaster/cancel-toast",
+           "operations" : [ {
+             "method" : "POST",
+             "summary" : null,
+             "notes" : "Stop making toast, if any is being made.\n           A 'resource-denied' error will be returned \n           if the toaster service is disabled.",
+             "type" : null,
+             "nickname" : "cancel-toast",
+             "consumes" : null,
+             "parameters" : null,
+             "responseMessages" : null
+           } ]
+         }, {
+           "path" : "operations/toaster/make-toast",
+           "operations" : [ {
+             "method" : "POST",
+             "summary" : null,
+             "notes" : "Make some toast.\n           The toastDone notification will be sent when \n           the toast is finished.\n           An 'in-use' error will be returned if toast\n           is already being made.\n           A 'resource-denied' error will be returned \n           if the toaster service is disabled.",
+             "type" : null,
+             "nickname" : "make-toast",
+             "consumes" : null,
+             "parameters" : null,
+             "responseMessages" : null
+           } ]
+         }
+  ],
+  "models": {
+    "Toaster": {
+    "id":"Toaster",
+               "$schema": "http://json-schema.org/draft-04/schema",
+         "description": "Top-level container for all toaster database objects.",
+         "properties": {
+           "allow-user": {
+             "description": "A list of user name patterns to allow",
+             "items": {"type": "string"},
+             "required": false,
+             "type": "array"
+           },
+                "how": {
+             "oneOf": [
+               {
+                 "manual": {"manual": {
+                   "required": false,
+                   "type": "string"
+                 }},
+                 "type": "object"
+               },
+               {
+                 "interval": {"interval": {
+                   "required": false,
+                   "type": "integer"
+                 }},
+                 "type": "object"
+               },
+               {
+                 "daily": {
+                   "daily": {
+                     "required": false,
+                     "type": "string"
+                   },
+                   "time-of-day": {
+                     "required": false,
+                     "type": "string"
+                   }
+                 },
+                 "type": "object"
+               }
+             ],
+             "type": "object"
+           },
+           "testToasterBits": {
+             "enum": [
+               "testbit1",
+               "testbit2"
+             ],
+             "minItems": 0,
+             "required": false,
+             "type": "String",
+             "uniqueItems": true
+           },
+           "toasterManufacturer": {
+             "description": "The name of the toaster's manufacturer. For instance, \n                Microsoft Toaster.",
+             "required": true,
+             "type": "string"
+           },
+           "toasterModelNumber": {
+             "description": "The name of the toaster's model. For instance,\n               Radiant Automatic.",
+             "required": true,
+             "type": "string"
+           },
+           "toasterStatus": {
+             "description": "This variable indicates the current state of \n               the toaster.",
+             "enum": [
+               "up",
+               "down"
+             ],
+             "required": true
+           }
+         }     
+    }
+  }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology-good.json b/opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology-good.json
new file mode 100644 (file)
index 0000000..4017829
--- /dev/null
@@ -0,0 +1,106 @@
+{
+    "apiVersion": "1.0.0",
+    "swaggerVersion": "1.2",
+    "basePath": "/api",
+    "resourcePath": "/config",
+    "produces": [ "application/json", "application/xml" ],
+    "apis": [
+        {
+            "path": "/network-topology:network-topology/network-topology",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Test",
+                    "notes": "",
+                    "type": "Toaster",
+                    "nickname": "something",
+                    "consumes": [
+                        "application/json",
+                        "application/xml"
+                    ],
+                    "responseMessages": [
+                        {
+                            "code": 405,
+                            "message": "Invalid input"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "models": {
+        "Toaster": {
+            "id":"Toaster",
+            "$schema": "http://json-schema.org/draft-04/schema",
+            "description": "Top-level container for all toaster database objects.",
+            "properties": {
+                "allow-user": {
+                    "description": "A list of user name patterns to allow",
+                    "items": {"type": "string"},
+                    "required": false,
+                    "type": "array"
+                },
+                "how": {
+                    "oneOf": [
+                        {
+                            "manual": {"manual": {
+                                "required": false,
+                                "type": "string"
+                            }},
+                            "type": "object"
+                        },
+                        {
+                            "interval": {"interval": {
+                                "required": false,
+                                "type": "integer"
+                            }},
+                            "type": "object"
+                        },
+                        {
+                            "daily": {
+                                "daily": {
+                                    "required": false,
+                                    "type": "string"
+                                },
+                                "time-of-day": {
+                                    "required": false,
+                                    "type": "string"
+                                }
+                            },
+                            "type": "object"
+                        }
+                    ],
+                    "type": "object"
+                },
+                "testToasterBits": {
+                    "enum": [
+                        "testbit1",
+                        "testbit2"
+                    ],
+                    "minItems": 0,
+                    "required": false,
+                    "type": "String",
+                    "uniqueItems": true
+                },
+                "toasterManufacturer": {
+                    "description": "The name of the toaster's manufacturer. For instance, \n                Microsoft Toaster.",
+                    "required": true,
+                    "type": "string"
+                },
+                "toasterModelNumber": {
+                    "description": "The name of the toaster's model. For instance,\n               Radiant Automatic.",
+                    "required": true,
+                    "type": "string"
+                },
+                "toasterStatus": {
+                    "description": "This variable indicates the current state of \n               the toaster.",
+                    "enum": [
+                        "up",
+                        "down"
+                    ],
+                    "required": true
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology-new.json b/opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology-new.json
new file mode 100644 (file)
index 0000000..c34fd8f
--- /dev/null
@@ -0,0 +1,35 @@
+{
+    "apiVersion": "1.0.0",
+    "swaggerVersion": "1.2",
+    "basePath": "/restconf",
+    "resourcePath": "/config",
+    "produces": [ "application/json", "application/xml" ],
+    "apis": [
+        {
+            "path": "/network-topology:network-topology/network-topology",
+            "operations": [
+                {
+                    "method": "GET",
+                    "summary": "Test",
+                    "notes": null,
+                    "type": "support",
+                    "nickname": "test",
+                    "consumes": null,
+                    "responseMessages": null
+                }
+            ]
+        }
+    ],
+    "models": {
+        "supporting-link": {
+            "id":"supporting-link",
+            "$schema": "http://json-schema.org/draft-04/schema",
+            "properties": {
+                "link-ref": {
+                    "required": false
+                }
+            },
+            "type": "object"
+        }
+    }
+}
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology.json b/opendaylight/md-sal/sal-rest-docgen/src/test/resources/topology.json
new file mode 100644 (file)
index 0000000..8a1a131
--- /dev/null
@@ -0,0 +1,730 @@
+{
+    "apiVersion" : "1.0.0",
+    "swaggerVersion" : "1.2",
+    "basePath" : "http://10.195.128.107:8080/restconf",
+    "resourcePath" : null,
+    "produces" : [ "application/json", "application/xml" ],
+    "apis" : [ {
+        "path" : "/operational/network-topology:network-topology",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : null,
+            "type" : "network-topology",
+            "nickname" : "GET-network-topology",
+            "consumes" : null,
+            "parameters" : [ ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "\n                This is the model of an abstract topology.\n                A topology contins nodes and links.  \n                Each topology MUST be identified by\n                unique topology-id for reason that a network could contain many\n                topologies.\n            ",
+            "type" : "topology",
+            "nickname" : "GET-topology",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "\n                    A Network Link connects a by Local (Source) node and\n                    a Remote (Destination) Network Nodes via a set of the \n                    nodes' termination points. \n                    As it is possible to have several links between the same\n                    source and destination nodes, and as a link could potentially\n                    be re-homed between termination points, to ensure that we \n                    would always know to distinguish between links, every link \n                    is identified by a dedicated link identifier.  \n                    Note that a link models a point-to-point link, not a multipoint\n                    link.  \n                    Layering dependencies on links in underlay topologies are\n                    not represented as the layering information of nodes and of \n                    termination points is sufficient.  \n                ",
+            "type" : "link",
+            "nickname" : "GET-link",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/destination",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : null,
+            "type" : "destination",
+            "nickname" : "GET-destination",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/destination/dest-node",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "Destination node identifier, must be in same topology.",
+            "type" : "dest-node",
+            "nickname" : "GET-dest-node",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/destination/dest-tp",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "Termination point within destination node that terminates the link.",
+            "type" : "dest-tp",
+            "nickname" : "GET-dest-tp",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/link-id",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+            "type" : "link-id",
+            "nickname" : "GET-link-id",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/source",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : null,
+            "type" : "source",
+            "nickname" : "GET-source",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/source/source-node",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "Source node identifier, must be in same topology.",
+            "type" : "source-node",
+            "nickname" : "GET-source-node",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/source/source-tp",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "Termination point within source node that terminates the link.",
+            "type" : "source-tp",
+            "nickname" : "GET-source-tp",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/supporting-link/{link-ref}",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : null,
+            "type" : "supporting-link",
+            "nickname" : "GET-supporting-link",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-ref",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/link/{link-id}/supporting-link/{link-ref}/link-ref",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : null,
+            "type" : "link-ref",
+            "nickname" : "GET-link-ref",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-id",
+                "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "link-ref",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/node/{node-id}",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "The list of network nodes defined for the topology.",
+            "type" : "node",
+            "nickname" : "GET-node",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-id",
+                "description" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/node/{node-id}/node-id",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+            "type" : "node-id",
+            "nickname" : "GET-node-id",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-id",
+                "description" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/node/{node-id}/supporting-node/{node-ref}",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "This list defines vertical layering information for nodes. \n                It allows to capture for any given node, which node (or nodes)\n                in the corresponding underlay topology it maps onto.  \n                A node can map to zero, one, or more nodes below it;\n                accordingly there can be zero, one, or more elements in the list.\n                If there are specific layering requirements, for example\n                specific to a particular type of topology that only allows\n                for certain layering relationships, the choice\n                below can be augmented with additional cases.\n                A list has been chosen rather than a leaf-list in order \n                to provide room for augmentations, e.g. for \n                statistics or priorization information associated with \n                supporting nodes.",
+            "type" : "supporting-node",
+            "nickname" : "GET-supporting-node",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-id",
+                "description" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-ref",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/node/{node-id}/supporting-node/{node-ref}/node-ref",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : null,
+            "type" : "node-ref",
+            "nickname" : "GET-node-ref",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-id",
+                "description" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-ref",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/node/{node-id}/termination-point/{tp-id}",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "A termination point can terminate a link.  \n                        Depending on the type of topology, a termination point could, \n                        for example, refer to a port or an interface.",
+            "type" : "termination-point",
+            "nickname" : "GET-termination-point",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-id",
+                "description" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "tp-id",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/node/{node-id}/termination-point/{tp-id}/tp-id",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : null,
+            "type" : "tp-id",
+            "nickname" : "GET-tp-id",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-id",
+                "description" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "tp-id",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/node/{node-id}/termination-point/{tp-id}/tp-ref",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "The leaf list identifies any termination points that the \n                termination point is dependent on, or maps onto.  \n                Those termination points will themselves be contained \n                in a supporting node.  \n                This dependency information can be inferred from \n                the dependencies between links.  For this reason, \n                this item is not separately configurable.  Hence no\n                corresponding constraint needs to be articulated.  \n                The corresponding information is simply provided by the\n                implementing system.",
+            "type" : "tp-ref",
+            "nickname" : "GET-tp-ref",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "node-id",
+                "description" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "tp-id",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/topology-id",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+            "type" : "topology-id",
+            "nickname" : "GET-topology-id",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/topology-types",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "This container is used to identify the type, or types \n                    (as a topology can support several types simultaneously), \n                    of the topology.  \n                    Topology types are the subject of several integrity constraints \n                    that an implementing server can validate in order to \n                    maintain integrity of the datastore.  \n                    Topology types are indicated through separate data nodes; \n                    the set of topology types is expected to increase over time.\n                    To add support for a new topology, an augmenting module\n                    needs to augment this container with a new empty optional \n                    container to indicate the new topology type.  \n                    The use of a container allows to indicate a subcategorization\n                    of topology types.  \n                    The container SHALL NOT be augmented with any data nodes \n                    that serve a purpose other than identifying a particular \n                    topology type.  \n                ",
+            "type" : "topology-types",
+            "nickname" : "GET-topology-types",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/underlay-topology/{topology-ref}",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : "Identifies the topology, or topologies, that this topology\n                    is dependent on.",
+            "type" : "underlay-topology",
+            "nickname" : "GET-underlay-topology",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "topology-ref",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    }, {
+        "path" : "/operational/network-topology:network-topology/topology/{topology-id}/underlay-topology/{topology-ref}/topology-ref",
+        "operations" : [ {
+            "method" : "GET",
+            "summary" : null,
+            "notes" : null,
+            "type" : "topology-ref",
+            "nickname" : "GET-topology-ref",
+            "consumes" : null,
+            "parameters" : [ {
+                "name" : "topology-id",
+                "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            }, {
+                "name" : "topology-ref",
+                "description" : null,
+                "required" : false,
+                "type" : "string",
+                "paramType" : "path"
+            } ],
+            "responseMessages" : null
+        } ]
+    } ],
+    "models" : {
+        "underlay-topology" : {
+            "id" : "underlay-topology",
+            "$schema" : "http://json-schema.org/draft-04/schema",
+            "properties" : {
+                "topology-ref" : {
+                    "required" : false
+                }
+            },
+            "type" : "object"
+        },
+        "network-topology" : "{\n  \"id\": \"network-topology\",\n  \"$schema\": \"http://json-schema.org/draft-04/schema\",\n  \"properties\": {\"topology\": {\n    \"items\": {\"$ref\": \"topology\"},\n    \"description\": \"\\n                This is the model of an abstract topology.\\n                A topology contins nodes and links.  \\n                Each topology MUST be identified by\\n                unique topology-id for reason that a network could contain many\\n                topologies.\\n            \",\n    \"type\": \"array\"\n  }},\n  \"type\": \"object\"\n}",
+        "node" : {
+            "id" : "node",
+            "$schema" : "http://json-schema.org/draft-04/schema",
+            "properties" : {
+                "supporting-node" : {
+                    "items" : {
+                        "$ref" : "supporting-node"
+                    },
+                    "description" : "This list defines vertical layering information for nodes. \n                It allows to capture for any given node, which node (or nodes)\n                in the corresponding underlay topology it maps onto.  \n                A node can map to zero, one, or more nodes below it;\n                accordingly there can be zero, one, or more elements in the list.\n                If there are specific layering requirements, for example\n                specific to a particular type of topology that only allows\n                for certain layering relationships, the choice\n                below can be augmented with additional cases.\n                A list has been chosen rather than a leaf-list in order \n                to provide room for augmentations, e.g. for \n                statistics or priorization information associated with \n                supporting nodes.",
+                    "type" : "array"
+                },
+                "termination-point" : {
+                    "items" : {
+                        "$ref" : "termination-point"
+                    },
+                    "description" : "A termination point can terminate a link.  \n                        Depending on the type of topology, a termination point could, \n                        for example, refer to a port or an interface.",
+                    "type" : "array"
+                },
+                "node-id" : {
+                    "description" : "The identifier of a node in the topology.  \n                A node is specific to a topology to which it belongs.",
+                    "type" : "string",
+                    "required" : false
+                }
+            },
+            "type" : "object"
+        },
+        "supporting-node" : {
+            "id" : "supporting-node",
+            "$schema" : "http://json-schema.org/draft-04/schema",
+            "properties" : {
+                "node-ref" : {
+                    "required" : false
+                }
+            },
+            "type" : "object"
+        },
+        "link" : {
+            "id" : "link",
+            "$schema" : "http://json-schema.org/draft-04/schema",
+            "properties" : {
+                "source" : {
+                    "properties" : {
+                        "source-node" : {
+                            "description" : "Source node identifier, must be in same topology.",
+                            "required" : true
+                        },
+                        "source-tp" : {
+                            "description" : "Termination point within source node that terminates the link.",
+                            "required" : false
+                        }
+                    },
+                    "type" : "object"
+                },
+                "supporting-link" : {
+                    "items" : {
+                        "$ref" : "supporting-link"
+                    },
+                    "type" : "array"
+                },
+                "link-id" : {
+                    "description" : "The identifier of a link in the topology.  \n                A link is specific to a topology to which it belongs.",
+                    "type" : "string",
+                    "required" : false
+                },
+                "destination" : {
+                    "properties" : {
+                        "dest-node" : {
+                            "description" : "Destination node identifier, must be in same topology.",
+                            "required" : true
+                        },
+                        "dest-tp" : {
+                            "description" : "Termination point within destination node that terminates the link.",
+                            "required" : false
+                        }
+                    },
+                    "type" : "object"
+                }
+            },
+            "type" : "object"
+        },
+        "termination-point" : {
+            "id" : "termination-point",
+            "$schema" : "http://json-schema.org/draft-04/schema",
+            "properties" : {
+                "tp-ref" : {
+                    "items" : { },
+                    "description" : "The leaf list identifies any termination points that the \n                termination point is dependent on, or maps onto.  \n                Those termination points will themselves be contained \n                in a supporting node.  \n                This dependency information can be inferred from \n                the dependencies between links.  For this reason, \n                this item is not separately configurable.  Hence no\n                corresponding constraint needs to be articulated.  \n                The corresponding information is simply provided by the\n                implementing system.",
+                    "required" : false,
+                    "type" : "array"
+                },
+                "tp-id" : {
+                    "type" : "string",
+                    "required" : false
+                }
+            },
+            "type" : "object"
+        },
+        "topology" : {
+            "id" : "topology",
+            "$schema" : "http://json-schema.org/draft-04/schema",
+            "properties" : {
+                "underlay-topology" : {
+                    "items" : {
+                        "$ref" : "underlay-topology"
+                    },
+                    "description" : "Identifies the topology, or topologies, that this topology\n                    is dependent on.",
+                    "type" : "array"
+                },
+                "node" : {
+                    "items" : {
+                        "$ref" : "node"
+                    },
+                    "description" : "The list of network nodes defined for the topology.",
+                    "type" : "array"
+                },
+                "topology-types" : {
+                    "description" : "This container is used to identify the type, or types \n                    (as a topology can support several types simultaneously), \n                    of the topology.  \n                    Topology types are the subject of several integrity constraints \n                    that an implementing server can validate in order to \n                    maintain integrity of the datastore.  \n                    Topology types are indicated through separate data nodes; \n                    the set of topology types is expected to increase over time.\n                    To add support for a new topology, an augmenting module\n                    needs to augment this container with a new empty optional \n                    container to indicate the new topology type.  \n                    The use of a container allows to indicate a subcategorization\n                    of topology types.  \n                    The container SHALL NOT be augmented with any data nodes \n                    that serve a purpose other than identifying a particular \n                    topology type.  \n                ",
+                    "properties" : { },
+                    "type" : "object"
+                },
+                "topology-id" : {
+                    "description" : "\n                    It is presumed that a datastore will contain many topologies. To\n                    distinguish between topologies it is vital to have UNIQUE\n                    topology identifiers.\n                ",
+                    "type" : "string",
+                    "required" : false
+                },
+                "link" : {
+                    "items" : {
+                        "$ref" : "link"
+                    },
+                    "description" : "\n                    A Network Link connects a by Local (Source) node and\n                    a Remote (Destination) Network Nodes via a set of the \n                    nodes' termination points. \n                    As it is possible to have several links between the same\n                    source and destination nodes, and as a link could potentially\n                    be re-homed between termination points, to ensure that we \n                    would always know to distinguish between links, every link \n                    is identified by a dedicated link identifier.  \n                    Note that a link models a point-to-point link, not a multipoint\n                    link.  \n                    Layering dependencies on links in underlay topologies are\n                    not represented as the layering information of nodes and of \n                    termination points is sufficient.  \n                ",
+                    "type" : "array"
+                }
+            },
+            "type" : "object"
+        },
+        "supporting-link" : {
+            "id" : "supporting-link",
+            "$schema" : "http://json-schema.org/draft-04/schema",
+            "properties" : {
+                "link-ref" : {
+                    "required" : false
+                }
+            },
+            "type" : "object"
+        }
+    }
+}
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/test/resources/wadl.xml b/opendaylight/md-sal/sal-rest-docgen/src/test/resources/wadl.xml
new file mode 100644 (file)
index 0000000..7c3488f
--- /dev/null
@@ -0,0 +1,142 @@
+<?xml version="1.0"?>
+<application xmlns="http://wadl.dev.java.net/2009/02" xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types"
+             xmlns:nt="urn:TBD:params:xml:ns:yang:network-topology">
+
+  <grammars>
+    <include href="network-topology.yang"/>
+    <include href="ietf-inet-types.yang"/>
+  </grammars>
+
+  <resources base="http://localhost:9998/restconf">
+    <resource path="operational">
+      <resource path="network-topology:network-topology">
+        <method name="GET">
+          <response>
+            <representation mediaType="application/xml" element="nt:network-topology"/>
+            <representation mediaType="text/xml" element="nt:network-topology"/>
+            <representation mediaType="application/json" element="nt:network-topology"/>
+            <representation mediaType="application/yang.data+xml" element="nt:network-topology"/>
+            <representation mediaType="application/yang.data+json" element="nt:network-topology"/>
+          </response>
+        </method>
+        <resource path="topology/{topology-id}">
+          <param required="true" style="template" name="topology-id" type="nt:topology-id"/>
+          <method name="GET">
+            <response>
+              <representation mediaType="application/xml" element="nt:topology"/>
+              <representation mediaType="text/xml" element="nt:topology"/>
+              <representation mediaType="application/json" element="nt:topology"/>
+              <representation mediaType="application/yang.data+xml" element="nt:topology"/>
+              <representation mediaType="application/yang.data+json" element="nt:topology"/>
+            </response>
+          </method>
+          <resource path="link/{link-id}">
+            <param required="true" style="template" name="link-id" type="nt:link-id"/>
+            <method name="GET">
+              <response>
+                <representation mediaType="application/xml" element="nt:link"/>
+                <representation mediaType="text/xml" element="nt:link"/>
+                <representation mediaType="application/json" element="nt:link"/>
+                <representation mediaType="application/yang.data+xml" element="nt:link"/>
+                <representation mediaType="application/yang.data+json" element="nt:link"/>
+              </response>
+            </method>
+            <resource path="destination">
+              <method name="GET">
+                <response>
+                  <representation mediaType="application/xml" element="nt:destination"/>
+                  <representation mediaType="text/xml" element="nt:destination"/>
+                  <representation mediaType="application/json" element="nt:destination"/>
+                  <representation mediaType="application/yang.data+xml" element="nt:destination"/>
+                  <representation mediaType="application/yang.data+json" element="nt:destination"/>
+                </response>
+              </method>
+            </resource>
+            <resource path="source">
+              <method name="GET">
+                <response>
+                  <representation mediaType="application/xml" element="nt:source"/>
+                  <representation mediaType="text/xml" element="nt:source"/>
+                  <representation mediaType="application/json" element="nt:source"/>
+                  <representation mediaType="application/yang.data+xml" element="nt:source"/>
+                  <representation mediaType="application/yang.data+json" element="nt:source"/>
+                </response>
+              </method>
+            </resource>
+            <resource path="supporting-link/{link-ref}">
+              <param required="true" style="template" name="link-ref" type="nt:link-ref"/>
+              <method name="GET">
+                <response>
+                  <representation mediaType="application/xml" element="nt:supporting-link"/>
+                  <representation mediaType="text/xml" element="nt:supporting-link"/>
+                  <representation mediaType="application/json" element="nt:supporting-link"/>
+                  <representation mediaType="application/yang.data+xml" element="nt:supporting-link"/>
+                  <representation mediaType="application/yang.data+json" element="nt:supporting-link"/>
+                </response>
+              </method>
+            </resource>
+          </resource>
+          <resource path="node/{node-id}">
+            <param required="true" style="template" name="node-id" type="nt:node-id"/>
+            <method name="GET">
+              <response>
+                <representation mediaType="application/xml" element="nt:node"/>
+                <representation mediaType="text/xml" element="nt:node"/>
+                <representation mediaType="application/json" element="nt:node"/>
+                <representation mediaType="application/yang.data+xml" element="nt:node"/>
+                <representation mediaType="application/yang.data+json" element="nt:node"/>
+              </response>
+            </method>
+            <resource path="supporting-node/{node-ref}">
+              <param required="true" style="template" name="node-ref" type="nt:node-ref"/>
+              <method name="GET">
+                <response>
+                  <representation mediaType="application/xml" element="nt:supporting-node"/>
+                  <representation mediaType="text/xml" element="nt:supporting-node"/>
+                  <representation mediaType="application/json" element="nt:supporting-node"/>
+                  <representation mediaType="application/yang.data+xml" element="nt:supporting-node"/>
+                  <representation mediaType="application/yang.data+json" element="nt:supporting-node"/>
+                </response>
+              </method>
+            </resource>
+            <resource path="termination-point/{tp-id}">
+              <param required="true" style="template" name="tp-id" type="nt:tp-id"/>
+              <method name="GET">
+                <response>
+                  <representation mediaType="application/xml" element="nt:termination-point"/>
+                  <representation mediaType="text/xml" element="nt:termination-point"/>
+                  <representation mediaType="application/json" element="nt:termination-point"/>
+                  <representation mediaType="application/yang.data+xml" element="nt:termination-point"/>
+                  <representation mediaType="application/yang.data+json" element="nt:termination-point"/>
+                </response>
+              </method>
+            </resource>
+          </resource>
+          <resource path="topology-types">
+            <method name="GET">
+              <response>
+                <representation mediaType="application/xml" element="nt:topology-types"/>
+                <representation mediaType="text/xml" element="nt:topology-types"/>
+                <representation mediaType="application/json" element="nt:topology-types"/>
+                <representation mediaType="application/yang.data+xml" element="nt:topology-types"/>
+                <representation mediaType="application/yang.data+json" element="nt:topology-types"/>
+              </response>
+            </method>
+          </resource>
+          <resource path="underlay-topology/{topology-ref}">
+            <param required="true" style="template" name="topology-ref" type="nt:topology-ref"/>
+            <method name="GET">
+              <response>
+                <representation mediaType="application/xml" element="nt:underlay-topology"/>
+                <representation mediaType="text/xml" element="nt:underlay-topology"/>
+                <representation mediaType="application/json" element="nt:underlay-topology"/>
+                <representation mediaType="application/yang.data+xml" element="nt:underlay-topology"/>
+                <representation mediaType="application/yang.data+json" element="nt:underlay-topology"/>
+              </response>
+            </method>
+          </resource>
+        </resource>
+      </resource>
+    </resource>
+  </resources>
+</application>
diff --git a/opendaylight/md-sal/sal-rest-docgen/src/test/resources/yang/toaster.yang b/opendaylight/md-sal/sal-rest-docgen/src/test/resources/yang/toaster.yang
new file mode 100644 (file)
index 0000000..d33bc46
--- /dev/null
@@ -0,0 +1,240 @@
+module toaster {
+
+    yang-version 1;
+
+    namespace
+      "http://netconfcentral.org/ns/toaster";
+
+    prefix toast;
+
+    organization "Netconf Central";
+
+    contact
+      "Andy Bierman <andy@netconfcentral.org>";
+
+    description
+      "YANG version of the TOASTER-MIB.";
+
+    revision "2009-11-20" {
+      description
+        "Toaster module in progress.";
+    }
+
+
+    identity toast-type {
+      description
+          "Base for all bread types supported by the toaster.
+           New bread types not listed here nay be added in the 
+           future.";
+    }
+
+    identity white-bread {
+      base toast:toast-type;
+      description "White bread.";
+    }
+
+    identity wheat-bread {
+      base toast-type;
+      description "Wheat bread.";
+    }
+
+    identity wonder-bread {
+      base toast-type;
+      description "Wonder bread.";
+    }
+
+    identity frozen-waffle {
+      base toast-type;
+      description "Frozen waffle.";
+    }
+
+    identity frozen-bagel {
+      base toast-type;
+      description "Frozen bagel.";
+    }
+
+    identity hash-brown {
+      base toast-type;
+      description "Hash browned potatos.";
+    }
+
+    typedef DisplayString {
+      type string;
+      description
+        "YANG version of the SMIv2 DisplayString TEXTUAL-CONVENTION.";
+      reference
+        "RFC 2579, section 2.";
+
+    }
+
+    container toaster {
+      presence
+        "Indicates the toaster service is available";
+      description
+        "Top-level container for all toaster database objects.";
+        
+      leaf testToasterBits {
+         type bits {
+             bit testbit1 {
+                 position 0;
+             }
+             bit testbit2 {
+                 position 1;
+             }
+         }
+         default "testbit2";
+     }
+     
+     leaf testUnion {
+        type union {
+         type int32;
+         type string;
+        }
+        
+     } 
+     
+     leaf-list allow-user  {
+          type string;
+          description "A list of user name patterns to allow";
+        
+        }
+        
+        choice how {
+             default interval;
+             case interval {
+                 leaf interval {
+                     type uint16;
+                     default 30;
+                     units minutes;
+                 }
+             }
+             case daily {
+                 leaf daily {
+                     type string;
+                 }
+                 leaf time-of-day {
+                     type string;
+                     units 24-hour-clock;
+                     default 1am;
+                 }
+             }
+             case manual {
+                 leaf manual {
+                     type string;
+                 }
+             }
+         } 
+        
+      leaf toasterManufacturer {
+        type DisplayString;
+        config false;
+        mandatory true;
+        description
+          "The name of the toaster's manufacturer. For instance, 
+                Microsoft Toaster.";
+      }
+
+      leaf toasterModelNumber {
+        type DisplayString;
+        config false;
+        mandatory true;
+        description
+          "The name of the toaster's model. For instance,
+               Radiant Automatic.";
+      }
+
+      leaf toasterStatus {
+        type enumeration {
+          enum "up" {
+            value 1;
+            description
+              "The toaster knob position is up.
+                      No toast is being made now.";
+          }
+          enum "down" {
+            value 2;
+            description
+              "The toaster knob position is down.
+                      Toast is being made now.";
+          }
+        }
+        config false;
+        mandatory true;
+        description
+          "This variable indicates the current state of 
+               the toaster.";
+      }
+    } 
+
+    rpc make-toast {
+      description
+        "Make some toast.
+           The toastDone notification will be sent when 
+           the toast is finished.
+           An 'in-use' error will be returned if toast
+           is already being made.
+           A 'resource-denied' error will be returned 
+           if the toaster service is disabled.";
+      input {
+        leaf toasterDoneness {
+          type uint32 {
+            range "1 .. 10";
+          }
+          default '5';
+          description
+            "This variable controls how well-done is the 
+                   ensuing toast. It should be on a scale of 1 to 10.
+                   Toast made at 10 generally is considered unfit 
+                   for human consumption; toast made at 1 is warmed 
+                   lightly.";
+        }
+
+        leaf toasterToastType {
+          type identityref {
+            base toast:toast-type;
+          }
+          default 'wheat-bread';
+          description
+            "This variable informs the toaster of the type of 
+                   material that is being toasted. The toaster 
+                   uses this information, combined with 
+                   toasterDoneness, to compute for how 
+                   long the material must be toasted to achieve 
+                   the required doneness.";
+        }
+      }
+    }  
+
+    rpc cancel-toast {
+      description
+        "Stop making toast, if any is being made.
+           A 'resource-denied' error will be returned 
+           if the toaster service is disabled.";
+    }  
+    
+    notification toastDone {
+      description
+        "Indicates that the toast in progress has completed.";
+      leaf toastStatus {
+        type enumeration {
+          enum "done" {
+            value 0;
+            description "The toast is done.";
+          }
+          enum "cancelled" {
+            value 1;
+            description
+              "The toast was cancelled.";
+          }
+          enum "error" {
+            value 2;
+            description
+              "The toaster service was disabled or
+                     the toaster is broken.";
+          }
+        }
+        description
+          "Indicates the final toast status";
+      }
+    }  
+  }  
index 60db8f9ba65432ae64cf5946ca832692517bfc5c..dc96b790022e3755728a77b98176a9c9fb124016 100644 (file)
       <version>1.1-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <groupId>org.openexi</groupId>
       <artifactId>nagasena</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <groupId>org.openexi</groupId>
       <artifactId>nagasena-rta</artifactId>
     </dependency>
     <dependency>
index add523157fa358c5a4ccadbcc5203e8d91a1e076..eb826055295d68bf7873edfbd3008175db002604 100644 (file)
@@ -77,8 +77,8 @@ public class ToasterTest {
                 mavenBundle("org.opendaylight.controller.samples", "sample-toaster-provider").versionAsInProject(),
                 mavenBundle("org.opendaylight.controller.samples", "sample-toaster-consumer").versionAsInProject(),
                 mavenBundle("org.opendaylight.controller.samples", "sample-toaster").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena-rta").versionAsInProject()
+                mavenBundle("org.openexi", "nagasena").versionAsInProject(),
+                mavenBundle("org.openexi", "nagasena-rta").versionAsInProject()
         );
     }
 
index 4222daae13324826e3bee2acd15edb408fab04aa..5c8b20a4e36bacdad1c0a5a041d94ee67e87f406 100644 (file)
   </dependencies>
 
   <build>
-    <pluginManagement>
-      <plugins>
-        <!--This plugin's configuration is used to store Eclipse 
-                    m2e settings only. It has no influence on the Maven build itself. -->
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.opendaylight.yangtools</groupId>
-                    <artifactId>yang-maven-plugin</artifactId>
-                    <versionRange>[0.5,)</versionRange>
-                    <goals>
-                      <goal>generate-sources</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore></ignore>
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
     <plugins>
       <plugin>
         <groupId>org.opendaylight.yangtools</groupId>
index 06d6e821122617aa1642e3cfd6a5d46808f8518a..add46bd162fc5644a0f4a5bf13fed72e5ad0a6d2 100644 (file)
@@ -41,17 +41,17 @@ final class FlowStatsTracker extends AbstractListeningStatsTracker<FlowAndStatis
     private FlowTableStatsTracker flowTableStats;
     private int unaccountedFlowsCounter = 1;
 
-    FlowStatsTracker(OpendaylightFlowStatisticsService flowStatsService, final FlowCapableContext context) {
+    FlowStatsTracker(final OpendaylightFlowStatisticsService flowStatsService, final FlowCapableContext context) {
         super(context);
         this.flowStatsService = flowStatsService;
     }
-    FlowStatsTracker(OpendaylightFlowStatisticsService flowStatsService, final FlowCapableContext context, FlowTableStatsTracker flowTableStats) {
+    FlowStatsTracker(final OpendaylightFlowStatisticsService flowStatsService, final FlowCapableContext context, final FlowTableStatsTracker flowTableStats) {
         this(flowStatsService, context);
         this.flowTableStats = flowTableStats;
     }
 
     @Override
-    protected void cleanupSingleStat(DataModificationTransaction trans, FlowStatsEntry item) {
+    protected void cleanupSingleStat(final DataModificationTransaction trans, final FlowStatsEntry item) {
         InstanceIdentifier<?> flowRef = getNodeIdentifierBuilder()
                             .augmentation(FlowCapableNode.class)
                             .child(Table.class, new TableKey(item.getTableId()))
@@ -61,7 +61,7 @@ final class FlowStatsTracker extends AbstractListeningStatsTracker<FlowAndStatis
     }
 
     @Override
-    protected FlowStatsEntry updateSingleStat(DataModificationTransaction trans, FlowAndStatisticsMapList map) {
+    protected FlowStatsEntry updateSingleStat(final DataModificationTransaction trans, final FlowAndStatisticsMapList map) {
         short tableId = map.getTableId();
 
         FlowBuilder flowBuilder = new FlowBuilder();
@@ -221,7 +221,7 @@ final class FlowStatsTracker extends AbstractListeningStatsTracker<FlowAndStatis
         }
 
         this.requestAllFlowsAllTables();
-        
+
     }
     public void requestAllFlowsAllTables() {
         if (flowStatsService != null) {
@@ -254,7 +254,7 @@ final class FlowStatsTracker extends AbstractListeningStatsTracker<FlowAndStatis
     }
 
     @Override
-    public void onDataChanged(DataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
+    public void onDataChanged(final DataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
         for (Entry<InstanceIdentifier<?>, DataObject> e : change.getCreatedConfigurationData().entrySet()) {
             if (Flow.class.equals(e.getKey().getTargetType())) {
                 final Flow flow = (Flow) e.getValue();
@@ -270,11 +270,8 @@ final class FlowStatsTracker extends AbstractListeningStatsTracker<FlowAndStatis
             if (Flow.class.equals(key.getTargetType())) {
                 @SuppressWarnings("unchecked")
                 final InstanceIdentifier<Flow> flow = (InstanceIdentifier<Flow>)key;
-                final InstanceIdentifier<?> del = InstanceIdentifier.builder(flow)
-                        .augmentation(FlowStatisticsData.class).build();
-                logger.debug("Key {} triggered remove of augmentation {}", key, del);
-
-                trans.removeOperationalData(del);
+                logger.debug("Key {} triggered remove of Flow from operational space.", key);
+                trans.removeOperationalData(flow);
             }
         }
         trans.commit();
index 54f1fc0bb4fbcd0889fa185fd82248907594c3ec..f4685d2bd918b7a3aa0653e6ed809e010662abc9 100644 (file)
@@ -15,9 +15,10 @@ import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMap
 import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.toTopologyNode;
 import static org.opendaylight.md.controller.topology.manager.FlowCapableNodeMapping.toTopologyNodeId;
 
-import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
 
 import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader;
+import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
 import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
 import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorUpdated;
@@ -48,15 +49,20 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.JdkFutureAdapters;
+
 class FlowCapableTopologyExporter implements //
         FlowTopologyDiscoveryListener, //
         OpendaylightInventoryListener //
 {
 
-    private final static Logger LOG = LoggerFactory.getLogger(FlowCapableTopologyExporter.class);
+    protected final static Logger LOG = LoggerFactory.getLogger(FlowCapableTopologyExporter.class);
     public static TopologyKey topology = new TopologyKey(new TopologyId("flow:1"));
 
     // FIXME: Flow capable topology exporter should use transaction chaining API
@@ -79,7 +85,7 @@ class FlowCapableTopologyExporter implements //
         Topology top = tb.build();
         DataModificationTransaction tx = dataService.beginTransaction();
         tx.putOperationalData(topologyPath, top);
-        tx.commit();
+        listenOnTransactionState(tx.getIdentifier(),tx.commit());
     }
 
     @Override
@@ -90,11 +96,7 @@ class FlowCapableTopologyExporter implements //
         DataModificationTransaction tx = dataService.beginTransaction();
         tx.removeOperationalData(nodeInstance);
         removeAffectedLinks(tx, nodeId);
-        try {
-            tx.commit().get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Topology state export not successful. ",e);
-        }
+        listenOnTransactionState(tx.getIdentifier(),tx.commit());
     }
 
     @Override
@@ -105,11 +107,7 @@ class FlowCapableTopologyExporter implements //
             InstanceIdentifier<Node> path = getNodePath(toTopologyNodeId(notification.getId()));
             DataModificationTransaction tx = dataService.beginTransaction();
             tx.putOperationalData(path, node);
-            try {
-                tx.commit().get();
-            } catch (InterruptedException | ExecutionException e) {
-                LOG.error("Topology state export not successful. ",e);
-            }
+            listenOnTransactionState(tx.getIdentifier(),tx.commit());
         }
     }
 
@@ -121,11 +119,7 @@ class FlowCapableTopologyExporter implements //
         DataModificationTransaction tx = dataService.beginTransaction();
         tx.removeOperationalData(tpInstance);
         removeAffectedLinks(tx, tpId);
-        try {
-            tx.commit().get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Topology state export not successful. ",e);
-        }
+        listenOnTransactionState(tx.getIdentifier(),tx.commit());
 
     }
 
@@ -144,11 +138,7 @@ class FlowCapableTopologyExporter implements //
                     || (fcncu.getConfiguration() != null && fcncu.getConfiguration().isPORTDOWN())) {
                 removeAffectedLinks(tx, point.getTpId());
             }
-            try {
-                tx.commit().get();
-            } catch (InterruptedException | ExecutionException e) {
-                LOG.error("Topology state export not successful. ",e);
-            }
+            listenOnTransactionState(tx.getIdentifier(),tx.commit());
         }
     }
 
@@ -158,11 +148,8 @@ class FlowCapableTopologyExporter implements //
         InstanceIdentifier<Link> path = linkPath(link);
         DataModificationTransaction tx = dataService.beginTransaction();
         tx.putOperationalData(path, link);
-        try {
-            tx.commit().get();
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Topology state export not successful. ",e);
-        }
+        listenOnTransactionState(tx.getIdentifier(),tx.commit());
+
     }
 
     @Override
@@ -175,7 +162,7 @@ class FlowCapableTopologyExporter implements //
         InstanceIdentifier<Link> path = linkPath(toTopologyLink(notification));
         DataModificationTransaction tx = dataService.beginTransaction();
         tx.removeOperationalData(path);
-        ;
+        listenOnTransactionState(tx.getIdentifier(),tx.commit());
     }
 
     @Override
@@ -246,4 +233,26 @@ class FlowCapableTopologyExporter implements //
                 .child(Topology.class, topology).child(Link.class, link.getKey()).build();
         return linkInstanceId;
     }
+    
+    /**
+     * @param txId transaction identificator
+     * @param future transaction result
+     */
+    private static void listenOnTransactionState(final Object txId, Future<RpcResult<TransactionStatus>> future) {
+        Futures.addCallback(JdkFutureAdapters.listenInPoolThread(future),new FutureCallback<RpcResult<TransactionStatus>>() {
+            
+            @Override
+            public void onFailure(Throwable t) {
+                LOG.error("Topology export failed for Tx:{}", txId, t);
+                
+            }
+            
+            @Override
+            public void onSuccess(RpcResult<TransactionStatus> result) {
+                if(!result.isSuccessful()) {
+                    LOG.error("Topology export failed for Tx:{}", txId);
+                }
+            }
+        });
+    }
 }
index fd44315499acdcb127b519ebca77c161035958a3..ce77fdc08ed801219fb58f72b6d356c32ae77449 100644 (file)
@@ -41,7 +41,7 @@
         <artifactId>maven-bundle-plugin</artifactId>
         <configuration>
           <instructions>
-            <Export-Package>org.opendaylight.controller.netconf.client,</Export-Package>
+            <Export-Package>org.opendaylight.controller.netconf.client.*,</Export-Package>
             <Import-Package>com.google.common.base,
                             com.google.common.collect,
                             io.netty.channel,
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClient.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClient.java
deleted file mode 100644 (file)
index d98211d..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.controller.netconf.client;
-
-import io.netty.util.concurrent.Future;
-import io.netty.util.concurrent.GlobalEventExecutor;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.Set;
-import java.util.concurrent.CancellationException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import org.opendaylight.controller.netconf.api.NetconfMessage;
-import org.opendaylight.protocol.framework.NeverReconnectStrategy;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
-import org.opendaylight.protocol.framework.TimedReconnectStrategy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Stopwatch;
-import com.google.common.collect.Sets;
-
-/**
- * @deprecated Use {@link NetconfClientDispatcher.createClient()} or {@link NetconfClientDispatcher.createReconnectingClient()} instead.
- */
-@Deprecated
-public class NetconfClient implements Closeable {
-
-    private static final Logger logger = LoggerFactory.getLogger(NetconfClient.class);
-
-    public static final int DEFAULT_CONNECT_TIMEOUT = 5000;
-    private final NetconfClientDispatcher dispatch;
-    private final String label;
-    private final NetconfClientSession clientSession;
-    private final NetconfClientSessionListener sessionListener;
-    private final long sessionId;
-    private final InetSocketAddress address;
-
-    // TODO test reconnecting constructor
-    public NetconfClient(String clientLabelForLogging, InetSocketAddress address, int connectionAttempts,
-            int attemptMsTimeout, NetconfClientDispatcher netconfClientDispatcher) throws InterruptedException {
-        this(clientLabelForLogging, address, getReconnectStrategy(connectionAttempts, attemptMsTimeout),
-                netconfClientDispatcher);
-    }
-
-    private NetconfClient(String clientLabelForLogging, InetSocketAddress address, ReconnectStrategy strat, NetconfClientDispatcher netconfClientDispatcher) throws InterruptedException {
-        this.label = clientLabelForLogging;
-        dispatch = netconfClientDispatcher;
-        sessionListener = new SimpleNetconfClientSessionListener();
-        Future<NetconfClientSession> clientFuture = dispatch.createClient(address, sessionListener, strat);
-        this.address = address;
-        clientSession = get(clientFuture);
-        this.sessionId = clientSession.getSessionId();
-    }
-
-    private NetconfClientSession get(Future<NetconfClientSession> clientFuture) throws InterruptedException {
-        try {
-            return clientFuture.get();
-        } catch (CancellationException e) {
-            throw new RuntimeException("Cancelling " + this, e);
-        } catch (ExecutionException e) {
-            throw new IllegalStateException("Unable to create " + this, e);
-        }
-    }
-
-    public static NetconfClient clientFor(String clientLabelForLogging, InetSocketAddress address, ReconnectStrategy strategy, NetconfClientDispatcher netconfClientDispatcher) throws InterruptedException {
-        return new NetconfClient(clientLabelForLogging,address,strategy,netconfClientDispatcher);
-    }
-
-    public static NetconfClient clientFor(String clientLabelForLogging, InetSocketAddress address,
-            ReconnectStrategy strategy, NetconfClientDispatcher netconfClientDispatcher, NetconfClientSessionListener listener) throws InterruptedException {
-        return new NetconfClient(clientLabelForLogging,address,strategy,netconfClientDispatcher,listener);
-    }
-
-    public NetconfClient(String clientLabelForLogging, InetSocketAddress address, int connectTimeoutMs,
-            NetconfClientDispatcher netconfClientDispatcher) throws InterruptedException {
-        this(clientLabelForLogging, address,
-                new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE, connectTimeoutMs), netconfClientDispatcher);
-    }
-
-    public NetconfClient(String clientLabelForLogging, InetSocketAddress address,
-            NetconfClientDispatcher netconfClientDispatcher) throws InterruptedException {
-        this(clientLabelForLogging, address, new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE,
-                DEFAULT_CONNECT_TIMEOUT), netconfClientDispatcher);
-    }
-
-    public NetconfClient(String clientLabelForLogging, InetSocketAddress address, ReconnectStrategy strategy,
-            NetconfClientDispatcher netconfClientDispatcher, NetconfClientSessionListener listener) throws InterruptedException{
-        this.label = clientLabelForLogging;
-        dispatch = netconfClientDispatcher;
-        sessionListener = listener;
-        Future<NetconfClientSession> clientFuture = dispatch.createClient(address, sessionListener, strategy);
-        this.address = address;
-        clientSession = get(clientFuture);
-        this.sessionId = clientSession.getSessionId();
-    }
-
-    public Future<NetconfMessage> sendRequest(NetconfMessage message) {
-        return ((SimpleNetconfClientSessionListener)sessionListener).sendRequest(message);
-    }
-
-    /**
-     * @deprecated Use {@link sendRequest} instead
-     */
-    @Deprecated
-    public NetconfMessage sendMessage(NetconfMessage message) throws ExecutionException, InterruptedException, TimeoutException {
-        return sendMessage(message, 5, 1000);
-    }
-
-    /**
-     * @deprecated Use {@link sendRequest} instead
-     */
-    @Deprecated
-    public NetconfMessage sendMessage(NetconfMessage message, int attempts, int attemptMsDelay) throws ExecutionException, InterruptedException, TimeoutException {
-        final Stopwatch stopwatch = new Stopwatch().start();
-
-        try {
-            return sendRequest(message).get(attempts * attemptMsDelay, TimeUnit.MILLISECONDS);
-        } finally {
-            stopwatch.stop();
-            logger.debug("Total time spent waiting for response from {}: {} ms", address, stopwatch.elapsed(TimeUnit.MILLISECONDS));
-        }
-    }
-
-    @Override
-    public void close() throws IOException {
-        clientSession.close();
-    }
-
-    public NetconfClientDispatcher getNetconfClientDispatcher() {
-        return dispatch;
-    }
-
-    private static ReconnectStrategy getReconnectStrategy(int connectionAttempts, int attemptMsTimeout) {
-        return new TimedReconnectStrategy(GlobalEventExecutor.INSTANCE, attemptMsTimeout, 1000, 1.0, null,
-                Long.valueOf(connectionAttempts), null);
-    }
-
-    @Override
-    public String toString() {
-        final StringBuffer sb = new StringBuffer("NetconfClient{");
-        sb.append("label=").append(label);
-        sb.append(", sessionId=").append(sessionId);
-        sb.append('}');
-        return sb.toString();
-    }
-
-    public long getSessionId() {
-        return sessionId;
-    }
-
-    public Set<String> getCapabilities() {
-        Preconditions.checkState(clientSession != null, "Client was not initialized successfully");
-        return Sets.newHashSet(clientSession.getServerCapabilities());
-    }
-
-    public NetconfClientSession getClientSession() {
-        return clientSession;
-    }
-}
index c7c723cb27b552fa51b7a7a287f66306649f35ca..37e29876f304b620e33d40490e3a9890855633c4 100644 (file)
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.controller.netconf.client;
 
-import com.google.common.base.Optional;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.socket.SocketChannel;
-import io.netty.util.HashedWheelTimer;
 import io.netty.util.concurrent.Future;
-import io.netty.util.concurrent.Promise;
-import org.opendaylight.controller.netconf.util.AbstractChannelInitializer;
-import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.protocol.framework.AbstractDispatcher;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
-import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
-import org.opendaylight.protocol.framework.SessionListenerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.Closeable;
-import java.net.InetSocketAddress;
-
-public class NetconfClientDispatcher extends AbstractDispatcher<NetconfClientSession, NetconfClientSessionListener> implements Closeable {
-
-    private static final Logger logger = LoggerFactory.getLogger(NetconfClientDispatcher.class);
-
-    private final NetconfClientSessionNegotiatorFactory negotiatorFactory;
-    private final HashedWheelTimer timer;
-
-    public NetconfClientDispatcher(EventLoopGroup bossGroup, EventLoopGroup workerGroup,
-            long clientConnectionTimeoutMillis) {
-        super(bossGroup, workerGroup);
-        timer = new HashedWheelTimer();
-        this.negotiatorFactory = new NetconfClientSessionNegotiatorFactory(timer,
-                Optional.<NetconfHelloMessageAdditionalHeader> absent(), clientConnectionTimeoutMillis);
-    }
-
-    public NetconfClientDispatcher(EventLoopGroup bossGroup, EventLoopGroup workerGroup,
-            NetconfHelloMessageAdditionalHeader additionalHeader, long connectionTimeoutMillis) {
-        super(bossGroup, workerGroup);
-        timer = new HashedWheelTimer();
-        this.negotiatorFactory = new NetconfClientSessionNegotiatorFactory(timer, Optional.of(additionalHeader),
-                connectionTimeoutMillis);
-    }
-
-    public Future<NetconfClientSession> createClient(InetSocketAddress address,
-            final NetconfClientSessionListener sessionListener, ReconnectStrategy strat) {
-
-        return super.createClient(address, strat, new PipelineInitializer<NetconfClientSession>() {
-
-            @Override
-            public void initializeChannel(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
-                initialize(ch, promise);
-            }
-
-            private void initialize(SocketChannel ch, Promise<NetconfClientSession> promise) {
-                new ClientChannelInitializer(negotiatorFactory, sessionListener).initialize(ch, promise);
-            }
-        });
-    }
-
-    public Future<Void> createReconnectingClient(final InetSocketAddress address,
-            final NetconfClientSessionListener listener,
-            final ReconnectStrategyFactory connectStrategyFactory, final ReconnectStrategy reestablishStrategy) {
-        final ClientChannelInitializer init = new ClientChannelInitializer(negotiatorFactory, listener);
-
-        return super.createReconnectingClient(address, connectStrategyFactory, reestablishStrategy,
-                new PipelineInitializer<NetconfClientSession>() {
-            @Override
-            public void initializeChannel(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
-                init.initialize(ch, promise);
-            }
-        });
-    }
-
-    private static final class ClientChannelInitializer extends AbstractChannelInitializer<NetconfClientSession> {
-
-        private final NetconfClientSessionNegotiatorFactory negotiatorFactory;
-        private final NetconfClientSessionListener sessionListener;
-
-        private ClientChannelInitializer(NetconfClientSessionNegotiatorFactory negotiatorFactory,
-                NetconfClientSessionListener sessionListener) {
-            this.negotiatorFactory = negotiatorFactory;
-            this.sessionListener = sessionListener;
-        }
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfReconnectingClientConfiguration;
 
-        @Override
-        public void initialize(SocketChannel ch, Promise<NetconfClientSession> promise) {
-                super.initialize(ch,promise);
-        }
+public interface NetconfClientDispatcher {
 
-        @Override
-        protected void initializeSessionNegotiator(SocketChannel ch, Promise<NetconfClientSession> promise) {
-            ch.pipeline().addAfter(NETCONF_MESSAGE_DECODER,  AbstractChannelInitializer.NETCONF_SESSION_NEGOTIATOR,
-                    negotiatorFactory.getSessionNegotiator(
-                            new SessionListenerFactory<NetconfClientSessionListener>() {
-                                @Override
-                                public NetconfClientSessionListener getSessionListener() {
-                                    return sessionListener;
-                                }
-                            }, ch, promise));
-        }
-    }
+    /**
+     *
+     * Create netconf client. Network communication has to be set up based on network protocol specified in clientConfiguration
+     *
+     * @param clientConfiguration
+     * @return netconf client based on provided configuration
+     */
+    Future<NetconfClientSession> createClient(NetconfClientConfiguration clientConfiguration);
 
-    @Override
-    public void close() {
-        try {
-            timer.stop();
-        } catch (Exception e) {
-            logger.debug("Ignoring exception while closing {}", timer, e);
-        }
-    }
+    Future<Void> createReconnectingClient(NetconfReconnectingClientConfiguration clientConfiguration);
 }
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientDispatcherImpl.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientDispatcherImpl.java
new file mode 100644 (file)
index 0000000..bdebfa2
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.netconf.client;
+
+import java.io.Closeable;
+
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfReconnectingClientConfiguration;
+import org.opendaylight.protocol.framework.AbstractDispatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import io.netty.channel.EventLoopGroup;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.util.Timer;
+import io.netty.util.concurrent.Future;
+import io.netty.util.concurrent.Promise;
+
+public class NetconfClientDispatcherImpl extends AbstractDispatcher<NetconfClientSession, NetconfClientSessionListener>
+        implements NetconfClientDispatcher, Closeable {
+
+    private static final Logger logger = LoggerFactory.getLogger(NetconfClientDispatcherImpl.class);
+
+    private final Timer timer;
+
+    public NetconfClientDispatcherImpl(final EventLoopGroup bossGroup, final EventLoopGroup workerGroup, final Timer timer) {
+        super(bossGroup, workerGroup);
+        this.timer = timer;
+    }
+
+    @Override
+    public Future<NetconfClientSession> createClient(final NetconfClientConfiguration clientConfiguration) {
+        switch (clientConfiguration.getProtocol()) {
+        case TCP:
+            return createTcpClient(clientConfiguration);
+        case SSH:
+            return createSshClient(clientConfiguration);
+        }
+        throw new IllegalArgumentException("Unknown client protocol " + clientConfiguration.getProtocol());
+    }
+
+    @Override
+    public Future<Void> createReconnectingClient(final NetconfReconnectingClientConfiguration clientConfiguration) {
+        switch (clientConfiguration.getProtocol()) {
+            case TCP: return createReconnectingTcpClient(clientConfiguration);
+            case SSH: return createReconnectingSshClient(clientConfiguration);
+            default: throw new IllegalArgumentException("Unknown client protocol " + clientConfiguration.getProtocol());
+        }
+    }
+
+    private Future<NetconfClientSession> createTcpClient(final NetconfClientConfiguration currentConfiguration) {
+        logger.debug("Creating TCP client with configuration: {}", currentConfiguration);
+        return super.createClient(currentConfiguration.getAddress(), currentConfiguration.getReconnectStrategy(),
+                new PipelineInitializer<NetconfClientSession>() {
+
+                    @Override
+                    public void initializeChannel(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
+                        initialize(ch, promise);
+                    }
+
+                    private void initialize(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
+                        new TcpClientChannelInitializer(getNegotiatorFactory(currentConfiguration), currentConfiguration
+                                .getSessionListener()).initialize(ch, promise);
+                    }
+                });
+    }
+
+    private Future<Void> createReconnectingTcpClient(final NetconfReconnectingClientConfiguration currentConfiguration) {
+        logger.debug("Creating reconnecting TCP client with configuration: {}", currentConfiguration);
+        final TcpClientChannelInitializer init = new TcpClientChannelInitializer(getNegotiatorFactory(currentConfiguration),
+                currentConfiguration.getSessionListener());
+
+        return super.createReconnectingClient(currentConfiguration.getAddress(), currentConfiguration.getConnectStrategyFactory(),
+                currentConfiguration.getReconnectStrategy(), new PipelineInitializer<NetconfClientSession>() {
+                    @Override
+                    public void initializeChannel(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
+                        init.initialize(ch, promise);
+                    }
+                });
+    }
+
+    private Future<NetconfClientSession> createSshClient(final NetconfClientConfiguration currentConfiguration) {
+        logger.debug("Creating SSH client with configuration: {}", currentConfiguration);
+        return super.createClient(currentConfiguration.getAddress(), currentConfiguration.getReconnectStrategy(),
+                new PipelineInitializer<NetconfClientSession>() {
+
+                    @Override
+                    public void initializeChannel(final SocketChannel ch,
+                                                  final Promise<NetconfClientSession> sessionPromise) {
+                        new SshClientChannelInitializer(currentConfiguration.getAuthHandler(),
+                                getNegotiatorFactory(currentConfiguration), currentConfiguration.getSessionListener())
+                                .initialize(ch, sessionPromise);
+                    }
+
+                });
+    }
+
+    private Future<Void> createReconnectingSshClient(final NetconfReconnectingClientConfiguration currentConfiguration) {
+        logger.debug("Creating reconnecting SSH client with configuration: {}", currentConfiguration);
+        final SshClientChannelInitializer init = new SshClientChannelInitializer(currentConfiguration.getAuthHandler(),
+                getNegotiatorFactory(currentConfiguration), currentConfiguration.getSessionListener());
+
+        return super.createReconnectingClient(currentConfiguration.getAddress(), currentConfiguration.getConnectStrategyFactory(), currentConfiguration.getReconnectStrategy(),
+                new PipelineInitializer<NetconfClientSession>() {
+                    @Override
+                    public void initializeChannel(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
+                        init.initialize(ch, promise);
+                    }
+                });
+    }
+
+    protected NetconfClientSessionNegotiatorFactory getNegotiatorFactory(final NetconfClientConfiguration cfg) {
+        return new NetconfClientSessionNegotiatorFactory(timer, cfg.getAdditionalHeader(),
+                cfg.getConnectionTimeoutMillis());
+    }
+}
index 0c5935b57162b44354a0db08a734886d18bd386a..4e2393171afd2090a103dbdb110ed4aea71f9dca 100644 (file)
@@ -69,7 +69,7 @@ public class NetconfClientSessionNegotiator extends
             tryToInitiateExi(session, startExiMessage);
         // Exi is not supported, release session immediately
         } else {
-            logger.debug("Netconf session {} isn't capable using exi.", session);
+            logger.debug("Netconf session {} isn't capable of using exi.", session);
             negotiationSuccessful(session);
         }
     }
@@ -80,16 +80,18 @@ public class NetconfClientSessionNegotiator extends
      * @param startExiMessage
      */
     void tryToInitiateExi(final NetconfClientSession session, final NetconfStartExiMessage startExiMessage) {
+        channel.pipeline().addAfter(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER,
+                ExiConfirmationInboundHandler.EXI_CONFIRMED_HANDLER,
+                new ExiConfirmationInboundHandler(session, startExiMessage));
+
         session.sendMessage(startExiMessage).addListener(new ChannelFutureListener() {
             @Override
             public void operationComplete(final ChannelFuture f) {
                 if (!f.isSuccess()) {
                     logger.warn("Failed to send start-exi message {} on session {}", startExiMessage, this, f.cause());
+                    channel.pipeline().remove(ExiConfirmationInboundHandler.EXI_CONFIRMED_HANDLER);
                 } else {
                     logger.trace("Start-exi message {} sent to socket on session {}", startExiMessage, this);
-                    channel.pipeline().addAfter(
-                            AbstractChannelInitializer.NETCONF_MESSAGE_DECODER, ExiConfirmationInboundHandler.EXI_CONFIRMED_HANDLER,
-                            new ExiConfirmationInboundHandler(session, startExiMessage));
                 }
             }
         });
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfSshClientDispatcher.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfSshClientDispatcher.java
deleted file mode 100644 (file)
index 5b82ff2..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.controller.netconf.client;
-
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.socket.SocketChannel;
-import io.netty.util.HashedWheelTimer;
-import io.netty.util.concurrent.Future;
-import io.netty.util.concurrent.Promise;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-
-import org.opendaylight.controller.netconf.util.AbstractChannelInitializer;
-import org.opendaylight.controller.netconf.util.handler.ssh.SshHandler;
-import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
-import org.opendaylight.controller.netconf.util.handler.ssh.client.Invoker;
-import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
-import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
-import org.opendaylight.protocol.framework.SessionListenerFactory;
-
-import com.google.common.base.Optional;
-
-public class NetconfSshClientDispatcher extends NetconfClientDispatcher {
-
-    private final AuthenticationHandler authHandler;
-    private final HashedWheelTimer timer;
-    private final NetconfClientSessionNegotiatorFactory negotiatorFactory;
-
-    public NetconfSshClientDispatcher(AuthenticationHandler authHandler, EventLoopGroup bossGroup,
-            EventLoopGroup workerGroup, long connectionTimeoutMillis) {
-        super(bossGroup, workerGroup, connectionTimeoutMillis);
-        this.authHandler = authHandler;
-        this.timer = new HashedWheelTimer();
-        this.negotiatorFactory = new NetconfClientSessionNegotiatorFactory(timer,
-                Optional.<NetconfHelloMessageAdditionalHeader> absent(), connectionTimeoutMillis);
-    }
-
-    public NetconfSshClientDispatcher(AuthenticationHandler authHandler, EventLoopGroup bossGroup,
-            EventLoopGroup workerGroup, NetconfHelloMessageAdditionalHeader additionalHeader, long socketTimeoutMillis) {
-        super(bossGroup, workerGroup, additionalHeader, socketTimeoutMillis);
-        this.authHandler = authHandler;
-        this.timer = new HashedWheelTimer();
-        this.negotiatorFactory = new NetconfClientSessionNegotiatorFactory(timer, Optional.of(additionalHeader),
-                socketTimeoutMillis);
-    }
-
-    @Override
-    public Future<NetconfClientSession> createClient(InetSocketAddress address,
-            final NetconfClientSessionListener sessionListener, ReconnectStrategy strat) {
-        return super.createClient(address, strat, new PipelineInitializer<NetconfClientSession>() {
-
-            @Override
-            public void initializeChannel(SocketChannel arg0, Promise<NetconfClientSession> arg1) {
-                new NetconfSshClientInitializer(authHandler, negotiatorFactory, sessionListener).initialize(arg0, arg1);
-            }
-
-        });
-    }
-
-    @Override
-    public Future<Void> createReconnectingClient(final InetSocketAddress address,
-            final NetconfClientSessionListener listener,
-            final ReconnectStrategyFactory connectStrategyFactory, final ReconnectStrategy reestablishStrategy) {
-        final NetconfSshClientInitializer init = new NetconfSshClientInitializer(authHandler, negotiatorFactory, listener);
-
-        return super.createReconnectingClient(address, connectStrategyFactory, reestablishStrategy,
-                new PipelineInitializer<NetconfClientSession>() {
-            @Override
-            public void initializeChannel(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
-                init.initialize(ch, promise);
-            }
-        });
-    }
-
-    private static final class NetconfSshClientInitializer extends AbstractChannelInitializer<NetconfClientSession> {
-
-        private final AuthenticationHandler authenticationHandler;
-        private final NetconfClientSessionNegotiatorFactory negotiatorFactory;
-        private final NetconfClientSessionListener sessionListener;
-
-        public NetconfSshClientInitializer(AuthenticationHandler authHandler,
-                NetconfClientSessionNegotiatorFactory negotiatorFactory,
-                final NetconfClientSessionListener sessionListener) {
-            this.authenticationHandler = authHandler;
-            this.negotiatorFactory = negotiatorFactory;
-            this.sessionListener = sessionListener;
-        }
-
-        @Override
-        public void initialize(SocketChannel ch, Promise<NetconfClientSession> promise) {
-            try {
-                Invoker invoker = Invoker.subsystem("netconf");
-                ch.pipeline().addFirst(new SshHandler(authenticationHandler, invoker));
-                super.initialize(ch,promise);
-            } catch (IOException e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        @Override
-        protected void initializeSessionNegotiator(SocketChannel ch,
-                Promise<NetconfClientSession> promise) {
-            ch.pipeline().addAfter(NETCONF_MESSAGE_DECODER,  AbstractChannelInitializer.NETCONF_SESSION_NEGOTIATOR,
-                    negotiatorFactory.getSessionNegotiator(new SessionListenerFactory<NetconfClientSessionListener>() {
-                @Override
-                public NetconfClientSessionListener getSessionListener() {
-                    return sessionListener;
-                }
-            }, ch, promise));
-        }
-    }
-}
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/SshClientChannelInitializer.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/SshClientChannelInitializer.java
new file mode 100644 (file)
index 0000000..b86349d
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.netconf.client;
+
+import io.netty.channel.socket.SocketChannel;
+import io.netty.util.concurrent.Promise;
+import org.opendaylight.controller.netconf.util.AbstractChannelInitializer;
+import org.opendaylight.controller.netconf.util.handler.ssh.SshHandler;
+import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
+import org.opendaylight.controller.netconf.util.handler.ssh.client.Invoker;
+import org.opendaylight.protocol.framework.SessionListenerFactory;
+
+import java.io.IOException;
+
+final class SshClientChannelInitializer extends AbstractChannelInitializer<NetconfClientSession> {
+
+    private final AuthenticationHandler authenticationHandler;
+    private final NetconfClientSessionNegotiatorFactory negotiatorFactory;
+    private final NetconfClientSessionListener sessionListener;
+
+    public SshClientChannelInitializer(final AuthenticationHandler authHandler,
+                                       final NetconfClientSessionNegotiatorFactory negotiatorFactory,
+                                       final NetconfClientSessionListener sessionListener) {
+        this.authenticationHandler = authHandler;
+        this.negotiatorFactory = negotiatorFactory;
+        this.sessionListener = sessionListener;
+    }
+
+    @Override
+    public void initialize(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
+        try {
+            final Invoker invoker = Invoker.subsystem("netconf");
+            ch.pipeline().addFirst(new SshHandler(authenticationHandler, invoker));
+            super.initialize(ch,promise);
+        } catch (final IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    protected void initializeSessionNegotiator(final SocketChannel ch,
+                                               final Promise<NetconfClientSession> promise) {
+        ch.pipeline().addAfter(NETCONF_MESSAGE_DECODER,  AbstractChannelInitializer.NETCONF_SESSION_NEGOTIATOR,
+                negotiatorFactory.getSessionNegotiator(new SessionListenerFactory<NetconfClientSessionListener>() {
+                    @Override
+                    public NetconfClientSessionListener getSessionListener() {
+                        return sessionListener;
+                    }
+                }, ch, promise));
+    }
+}
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/TcpClientChannelInitializer.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/TcpClientChannelInitializer.java
new file mode 100644 (file)
index 0000000..967d3c6
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.netconf.client;
+
+import io.netty.channel.socket.SocketChannel;
+import io.netty.util.concurrent.Promise;
+import org.opendaylight.controller.netconf.util.AbstractChannelInitializer;
+import org.opendaylight.protocol.framework.SessionListenerFactory;
+
+class TcpClientChannelInitializer extends AbstractChannelInitializer<NetconfClientSession> {
+
+    private final NetconfClientSessionNegotiatorFactory negotiatorFactory;
+    private final NetconfClientSessionListener sessionListener;
+
+    TcpClientChannelInitializer(final NetconfClientSessionNegotiatorFactory negotiatorFactory,
+                                final NetconfClientSessionListener sessionListener) {
+        this.negotiatorFactory = negotiatorFactory;
+        this.sessionListener = sessionListener;
+    }
+
+    @Override
+    public void initialize(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
+        super.initialize(ch, promise);
+    }
+
+    @Override
+    protected void initializeSessionNegotiator(final SocketChannel ch, final Promise<NetconfClientSession> promise) {
+        ch.pipeline().addAfter(NETCONF_MESSAGE_DECODER, AbstractChannelInitializer.NETCONF_SESSION_NEGOTIATOR,
+                negotiatorFactory.getSessionNegotiator(new SessionListenerFactory<NetconfClientSessionListener>() {
+                    @Override
+                    public NetconfClientSessionListener getSessionListener() {
+                        return sessionListener;
+                    }
+                }, ch, promise));
+    }
+}
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfClientConfiguration.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfClientConfiguration.java
new file mode 100644 (file)
index 0000000..5a3ec3a
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.netconf.client.conf;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import org.opendaylight.controller.netconf.client.NetconfClientSessionListener;
+import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
+import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
+import org.opendaylight.protocol.framework.ReconnectStrategy;
+
+import java.net.InetSocketAddress;
+
+public class NetconfClientConfiguration {
+
+    private final NetconfClientProtocol clientProtocol;
+    private final InetSocketAddress address;
+    private final Long connectionTimeoutMillis;
+
+    private final NetconfHelloMessageAdditionalHeader additionalHeader;
+    private final NetconfClientSessionListener sessionListener;
+
+    private final ReconnectStrategy reconnectStrategy;
+
+    private final AuthenticationHandler authHandler;
+
+    NetconfClientConfiguration(final NetconfClientProtocol protocol, final InetSocketAddress address, final Long connectionTimeoutMillis, final NetconfHelloMessageAdditionalHeader additionalHeader, final NetconfClientSessionListener sessionListener, final ReconnectStrategy reconnectStrategy, final AuthenticationHandler authHandler) {
+        this.address = address;
+        this.connectionTimeoutMillis = connectionTimeoutMillis;
+        this.additionalHeader = additionalHeader;
+        this.sessionListener = sessionListener;
+        this.clientProtocol = protocol;
+        this.reconnectStrategy = reconnectStrategy;
+        this.authHandler = authHandler;
+        validateConfiguration();
+    }
+
+    public final InetSocketAddress getAddress() {
+        return address;
+    }
+
+    public final Long getConnectionTimeoutMillis() {
+        return connectionTimeoutMillis;
+    }
+
+    public final Optional<NetconfHelloMessageAdditionalHeader> getAdditionalHeader() {
+        return Optional.fromNullable(additionalHeader);
+    }
+
+    public final NetconfClientSessionListener getSessionListener() {
+        return sessionListener;
+    }
+
+    public final ReconnectStrategy getReconnectStrategy() {
+        return reconnectStrategy;
+    }
+
+    public final AuthenticationHandler getAuthHandler() {
+        return authHandler;
+    }
+
+    public NetconfClientProtocol getProtocol() {
+        return clientProtocol;
+    }
+
+    private void validateConfiguration() {
+        Preconditions.checkNotNull(clientProtocol, " ");
+        switch (clientProtocol) {
+        case SSH:
+            validateSshConfiguration();
+            // Fall through intentional (ssh validation is a superset of tcp validation)
+        case TCP:
+            validateTcpConfiguration();
+        }
+    }
+
+    protected void validateSshConfiguration() {
+        Preconditions.checkNotNull(authHandler, "authHandler");
+    }
+
+    protected void validateTcpConfiguration() {
+        Preconditions.checkNotNull(address, "address");
+        Preconditions.checkNotNull(clientProtocol, "clientProtocol");
+        Preconditions.checkNotNull(connectionTimeoutMillis, "connectionTimeoutMillis");
+        Preconditions.checkNotNull(sessionListener, "sessionListener");
+        Preconditions.checkNotNull(reconnectStrategy, "reconnectStrategy");
+    }
+
+    @Override
+    public final String toString() {
+        return buildToStringHelper().toString();
+    }
+
+    protected Objects.ToStringHelper buildToStringHelper() {
+        return Objects.toStringHelper(this)
+                .add("address", address)
+                .add("connectionTimeoutMillis", connectionTimeoutMillis)
+                .add("additionalHeader", additionalHeader)
+                .add("sessionListener", sessionListener)
+                .add("reconnectStrategy", reconnectStrategy)
+                .add("clientProtocol", clientProtocol)
+                .add("authHandler", authHandler);
+    }
+
+    public static enum NetconfClientProtocol {
+        TCP, SSH
+    }
+}
\ No newline at end of file
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfClientConfigurationBuilder.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfClientConfigurationBuilder.java
new file mode 100644 (file)
index 0000000..a3e57bd
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.netconf.client.conf;
+
+import org.opendaylight.controller.netconf.client.NetconfClientSessionListener;
+import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
+import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
+import org.opendaylight.protocol.framework.ReconnectStrategy;
+
+import java.net.InetSocketAddress;
+
+public class NetconfClientConfigurationBuilder {
+
+    public static final int DEFAULT_CONNECTION_TIMEOUT_MILLIS = 5000;
+    public static final NetconfClientConfiguration.NetconfClientProtocol DEFAULT_CLIENT_PROTOCOL = NetconfClientConfiguration.NetconfClientProtocol.TCP;
+
+    private InetSocketAddress address;
+    private long connectionTimeoutMillis = DEFAULT_CONNECTION_TIMEOUT_MILLIS;
+    private NetconfHelloMessageAdditionalHeader additionalHeader;
+    private NetconfClientSessionListener sessionListener;
+    private ReconnectStrategy reconnectStrategy;
+    private AuthenticationHandler authHandler;
+    private NetconfClientConfiguration.NetconfClientProtocol clientProtocol = DEFAULT_CLIENT_PROTOCOL;
+
+    protected NetconfClientConfigurationBuilder() {
+    }
+
+    public static NetconfClientConfigurationBuilder create() {
+        return new NetconfClientConfigurationBuilder();
+    }
+
+    public NetconfClientConfigurationBuilder withAddress(final InetSocketAddress address) {
+        this.address = address;
+        return this;
+    }
+
+    public NetconfClientConfigurationBuilder withConnectionTimeoutMillis(final long connectionTimeoutMillis) {
+        this.connectionTimeoutMillis = connectionTimeoutMillis;
+        return this;
+    }
+
+    public NetconfClientConfigurationBuilder withProtocol(final NetconfClientConfiguration.NetconfClientProtocol clientProtocol) {
+        this.clientProtocol = clientProtocol;
+        return this;
+    }
+
+    public NetconfClientConfigurationBuilder withAdditionalHeader(final NetconfHelloMessageAdditionalHeader additionalHeader) {
+        this.additionalHeader = additionalHeader;
+        return this;
+    }
+
+    public NetconfClientConfigurationBuilder withSessionListener(final NetconfClientSessionListener sessionListener) {
+        this.sessionListener = sessionListener;
+        return this;
+    }
+
+    public NetconfClientConfigurationBuilder withReconnectStrategy(final ReconnectStrategy reconnectStrategy) {
+        this.reconnectStrategy = reconnectStrategy;
+        return this;
+    }
+
+    public NetconfClientConfigurationBuilder withAuthHandler(final AuthenticationHandler authHandler) {
+        this.authHandler = authHandler;
+        return this;
+    }
+
+    final InetSocketAddress getAddress() {
+        return address;
+    }
+
+    final long getConnectionTimeoutMillis() {
+        return connectionTimeoutMillis;
+    }
+
+    final NetconfHelloMessageAdditionalHeader getAdditionalHeader() {
+        return additionalHeader;
+    }
+
+    final NetconfClientSessionListener getSessionListener() {
+        return sessionListener;
+    }
+
+    final ReconnectStrategy getReconnectStrategy() {
+        return reconnectStrategy;
+    }
+
+    final AuthenticationHandler getAuthHandler() {
+        return authHandler;
+    }
+
+    final NetconfClientConfiguration.NetconfClientProtocol getProtocol() {
+        return clientProtocol;
+    }
+
+    public NetconfClientConfiguration build() {
+        return new NetconfClientConfiguration(clientProtocol, address, connectionTimeoutMillis, additionalHeader, sessionListener, reconnectStrategy, authHandler);
+    }
+}
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfReconnectingClientConfiguration.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfReconnectingClientConfiguration.java
new file mode 100644 (file)
index 0000000..64fcc48
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.netconf.client.conf;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+import org.opendaylight.controller.netconf.client.NetconfClientSessionListener;
+import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
+import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
+import org.opendaylight.protocol.framework.ReconnectStrategy;
+import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
+
+import java.net.InetSocketAddress;
+
+public final class NetconfReconnectingClientConfiguration extends NetconfClientConfiguration {
+
+    private final ReconnectStrategyFactory connectStrategyFactory;
+
+    NetconfReconnectingClientConfiguration(final NetconfClientProtocol clientProtocol, final InetSocketAddress address,
+            final Long connectionTimeoutMillis, final NetconfHelloMessageAdditionalHeader additionalHeader,
+            final NetconfClientSessionListener sessionListener, final ReconnectStrategy reconnectStrategy,
+            final ReconnectStrategyFactory connectStrategyFactory, final AuthenticationHandler authHandler) {
+        super(clientProtocol, address, connectionTimeoutMillis, additionalHeader, sessionListener, reconnectStrategy,
+                authHandler);
+        this.connectStrategyFactory = connectStrategyFactory;
+        validateReconnectConfiguration();
+    }
+
+    public ReconnectStrategyFactory getConnectStrategyFactory() {
+        return connectStrategyFactory;
+    }
+
+    private void validateReconnectConfiguration() {
+        Preconditions.checkNotNull(connectStrategyFactory);
+    }
+
+    @Override
+    protected Objects.ToStringHelper buildToStringHelper() {
+        return super.buildToStringHelper().add("connectStrategyFactory", connectStrategyFactory);
+    }
+}
diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfReconnectingClientConfigurationBuilder.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/conf/NetconfReconnectingClientConfigurationBuilder.java
new file mode 100644 (file)
index 0000000..411ac3c
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.netconf.client.conf;
+
+import java.net.InetSocketAddress;
+
+import org.opendaylight.controller.netconf.client.NetconfClientSessionListener;
+import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
+import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
+import org.opendaylight.protocol.framework.ReconnectStrategy;
+import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
+
+public class NetconfReconnectingClientConfigurationBuilder extends NetconfClientConfigurationBuilder {
+
+    private ReconnectStrategyFactory connectStrategyFactory;
+
+    private NetconfReconnectingClientConfigurationBuilder() {
+    }
+
+    public static NetconfReconnectingClientConfigurationBuilder create() {
+        return new NetconfReconnectingClientConfigurationBuilder();
+    }
+
+
+    public NetconfReconnectingClientConfigurationBuilder withConnectStrategyFactory(final ReconnectStrategyFactory connectStrategyFactory) {
+        this.connectStrategyFactory = connectStrategyFactory;
+        return this;
+    }
+
+    @Override
+    public NetconfReconnectingClientConfiguration build() {
+        return new NetconfReconnectingClientConfiguration(getProtocol(), getAddress(), getConnectionTimeoutMillis(), getAdditionalHeader(), getSessionListener(), getReconnectStrategy(), connectStrategyFactory, getAuthHandler());
+    }
+
+    // Override setter methods to return subtype
+
+    @Override
+    public NetconfReconnectingClientConfigurationBuilder withAddress(final InetSocketAddress address) {
+        return (NetconfReconnectingClientConfigurationBuilder) super.withAddress(address);
+    }
+
+    @Override
+    public NetconfReconnectingClientConfigurationBuilder withConnectionTimeoutMillis(final long connectionTimeoutMillis) {
+        return (NetconfReconnectingClientConfigurationBuilder) super.withConnectionTimeoutMillis(connectionTimeoutMillis);
+    }
+
+    @Override
+    public NetconfReconnectingClientConfigurationBuilder withAdditionalHeader(final NetconfHelloMessageAdditionalHeader additionalHeader) {
+        return (NetconfReconnectingClientConfigurationBuilder) super.withAdditionalHeader(additionalHeader);
+    }
+
+    @Override
+    public NetconfReconnectingClientConfigurationBuilder withSessionListener(final NetconfClientSessionListener sessionListener) {
+        return (NetconfReconnectingClientConfigurationBuilder) super.withSessionListener(sessionListener);
+    }
+
+    @Override
+    public NetconfReconnectingClientConfigurationBuilder withReconnectStrategy(final ReconnectStrategy reconnectStrategy) {
+        return (NetconfReconnectingClientConfigurationBuilder) super.withReconnectStrategy(reconnectStrategy);
+    }
+
+    @Override
+    public NetconfReconnectingClientConfigurationBuilder withAuthHandler(final AuthenticationHandler authHandler) {
+        return (NetconfReconnectingClientConfigurationBuilder) super.withAuthHandler(authHandler);
+    }
+
+    @Override
+    public NetconfReconnectingClientConfigurationBuilder withProtocol(NetconfClientConfiguration.NetconfClientProtocol clientProtocol) {
+        return (NetconfReconnectingClientConfigurationBuilder) super.withProtocol(clientProtocol);
+    }
+}
index 32c6ea85d69ffdd112afdd0cf103d3be7ac58247..60d8f3044aee5667ea04858377d31b109ca88ef0 100644 (file)
@@ -8,12 +8,8 @@
 
 package org.opendaylight.controller.netconf.client.test;
 
-import io.netty.util.concurrent.Future;
-import io.netty.util.concurrent.GlobalEventExecutor;
-
 import java.io.Closeable;
 import java.io.IOException;
-import java.net.InetSocketAddress;
 import java.util.Set;
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.ExecutionException;
@@ -25,11 +21,11 @@ import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
 import org.opendaylight.controller.netconf.client.NetconfClientSession;
 import org.opendaylight.controller.netconf.client.NetconfClientSessionListener;
 import org.opendaylight.controller.netconf.client.SimpleNetconfClientSessionListener;
-import org.opendaylight.protocol.framework.NeverReconnectStrategy;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Sets;
+import io.netty.util.concurrent.Future;
 
 
 /**
@@ -44,11 +40,11 @@ public class TestingNetconfClient implements Closeable {
     private final NetconfClientSessionListener sessionListener;
     private final long sessionId;
 
-    private TestingNetconfClient(String clientLabel, InetSocketAddress address, ReconnectStrategy strat,
-            NetconfClientDispatcher netconfClientDispatcher) throws InterruptedException {
+    public TestingNetconfClient(String clientLabel,
+                                 NetconfClientDispatcher netconfClientDispatcher, final NetconfClientConfiguration config) throws InterruptedException {
         this.label = clientLabel;
-        sessionListener = new SimpleNetconfClientSessionListener();
-        Future<NetconfClientSession> clientFuture = netconfClientDispatcher.createClient(address, sessionListener, strat);
+        sessionListener = config.getSessionListener();
+        Future<NetconfClientSession> clientFuture = netconfClientDispatcher.createClient(config);
         clientSession = get(clientFuture);
         this.sessionId = clientSession.getSessionId();
     }
@@ -63,18 +59,6 @@ public class TestingNetconfClient implements Closeable {
         }
     }
 
-    public TestingNetconfClient(String clientLabelForLogging, InetSocketAddress address, int connectTimeoutMs,
-                                NetconfClientDispatcher netconfClientDispatcher) throws InterruptedException {
-        this(clientLabelForLogging, address,
-                new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE, connectTimeoutMs), netconfClientDispatcher);
-    }
-
-    public TestingNetconfClient(String clientLabelForLogging, InetSocketAddress address,
-                                NetconfClientDispatcher netconfClientDispatcher) throws InterruptedException {
-        this(clientLabelForLogging, address, new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE,
-                DEFAULT_CONNECT_TIMEOUT), netconfClientDispatcher);
-    }
-
     public Future<NetconfMessage> sendRequest(NetconfMessage message) {
         return ((SimpleNetconfClientSessionListener)sessionListener).sendRequest(message);
     }
@@ -111,4 +95,4 @@ public class TestingNetconfClient implements Closeable {
         Preconditions.checkState(clientSession != null, "Client was not initialized successfully");
         return Sets.newHashSet(clientSession.getServerCapabilities());
     }
-}
\ No newline at end of file
+}
index 0a0cd2208891982efce68832bb66d46e29fe9cb3..b8622d1e911c54e225fb02bc032c5a9f9fae702a 100644 (file)
@@ -15,10 +15,6 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import io.netty.channel.EventLoopGroup;
-import io.netty.util.HashedWheelTimer;
 import java.io.DataOutputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -30,13 +26,13 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
-
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicLong;
+
 import org.apache.commons.io.IOUtils;
 import org.junit.After;
 import org.junit.AfterClass;
@@ -48,6 +44,10 @@ import org.junit.runners.Parameterized;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
+import org.opendaylight.controller.netconf.client.SimpleNetconfClientSessionListener;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder;
 import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListenerImpl;
 import org.opendaylight.controller.netconf.impl.osgi.SessionMonitoringService;
@@ -63,14 +63,20 @@ import org.opendaylight.controller.netconf.util.messages.NetconfStartExiMessage;
 import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
 import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants;
 import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.opendaylight.protocol.framework.NeverReconnectStrategy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 
 import io.netty.channel.ChannelFuture;
+import io.netty.channel.EventLoopGroup;
 import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.util.HashedWheelTimer;
+import io.netty.util.concurrent.GlobalEventExecutor;
 
 @RunWith(Parameterized.class)
 public class ConcurrentClientsTest {
@@ -138,10 +144,9 @@ public class ConcurrentClientsTest {
 
     @Before
     public void setUp() throws Exception {
-
+        hashedWheelTimer = new HashedWheelTimer();
         nettyGroup = new NioEventLoopGroup(nettyThreads);
-        NetconfHelloMessageAdditionalHeader additionalHeader = new NetconfHelloMessageAdditionalHeader("uname", "10.10.10.1", "830", "tcp", "client");
-        netconfClientDispatcher = new NetconfClientDispatcher( nettyGroup, nettyGroup, additionalHeader, 5000);
+        netconfClientDispatcher = new NetconfClientDispatcherImpl(nettyGroup, nettyGroup, hashedWheelTimer);
 
         NetconfOperationServiceFactoryListenerImpl factoriesListener = new NetconfOperationServiceFactoryListenerImpl();
 
@@ -149,7 +154,6 @@ public class ConcurrentClientsTest {
         factoriesListener.onAddNetconfOperationServiceFactory(new TestingOperationServiceFactory(testingNetconfOperation));
 
         SessionIdProvider idProvider = new SessionIdProvider();
-        hashedWheelTimer = new HashedWheelTimer();
 
         NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new NetconfServerSessionNegotiatorFactory(
                 hashedWheelTimer, factoriesListener, idProvider, 5000, commitNot, createMockedMonitoringService(), serverCaps);
@@ -333,8 +337,8 @@ public class ConcurrentClientsTest {
         @Override
         public void run() {
             try {
-                final TestingNetconfClient netconfClient = new TestingNetconfClient(Thread.currentThread().getName(),
-                        netconfAddress, netconfClientDispatcher);
+                final TestingNetconfClient netconfClient =
+                        new TestingNetconfClient(Thread.currentThread().getName(), netconfClientDispatcher, getClientConfig());
                 long sessionId = netconfClient.getSessionId();
                 logger.info("Client with session id {}: hello exchanged", sessionId);
 
@@ -353,5 +357,16 @@ public class ConcurrentClientsTest {
                 throw new IllegalStateException(Thread.currentThread().getName(), e);
             }
         }
+
+        private NetconfClientConfiguration getClientConfig() {
+            final NetconfClientConfigurationBuilder b = NetconfClientConfigurationBuilder.create();
+            b.withAddress(netconfAddress);
+            b.withAdditionalHeader(new NetconfHelloMessageAdditionalHeader("uname", "10.10.10.1", "830", "tcp",
+                    "client"));
+            b.withSessionListener(new SimpleNetconfClientSessionListener());
+            b.withReconnectStrategy(new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE,
+                    NetconfClientConfigurationBuilder.DEFAULT_CONNECTION_TIMEOUT_MILLIS));
+            return b.build();
+        }
     }
 }
index 0c03dda45bee20342466c35adb15f6653641d2bf..ce5203232035413c997ef54b4523becb189f3046 100644 (file)
           <forkCount>1</forkCount>
           <reuseForks>false</reuseForks>
           <perCoreThreadCount>false</perCoreThreadCount>
+          <classpathDependencyExcludes>
+            <classpathDependencyExcludes>com.google.collections:google-collections</classpathDependencyExcludes>
+            <classpathDependencyExcludes>org.ops4j.pax.url:pax-url-aether</classpathDependencyExcludes>
+          </classpathDependencyExcludes>
         </configuration>
         <executions>
           <execution>
index b81f950cb362cf8f810201bfe98c983e1bf0988d..d4073e5c178f1748ef71ee8466e70982646dab94 100644 (file)
@@ -7,22 +7,30 @@
  */
 package org.opendaylight.controller.netconf.it;
 
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.util.HashedWheelTimer;
+import java.net.InetSocketAddress;
+
 import org.junit.After;
 import org.junit.Before;
 import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
+import org.opendaylight.controller.netconf.client.SimpleNetconfClientSessionListener;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
 import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher;
 import org.opendaylight.controller.netconf.impl.NetconfServerSessionNegotiatorFactory;
 import org.opendaylight.controller.netconf.impl.SessionIdProvider;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListenerImpl;
 import org.opendaylight.controller.netconf.impl.osgi.SessionMonitoringService;
+import org.opendaylight.protocol.framework.NeverReconnectStrategy;
+
+import io.netty.channel.EventLoopGroup;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.util.HashedWheelTimer;
+import io.netty.util.concurrent.GlobalEventExecutor;
 
 public class AbstractNetconfConfigTest extends AbstractConfigTest {
 
-    protected EventLoopGroup nettyThreadgroup;
+    private EventLoopGroup nettyThreadgroup;
     private HashedWheelTimer hashedWheelTimer;
 
     @Before
@@ -31,7 +39,6 @@ public class AbstractNetconfConfigTest extends AbstractConfigTest {
         hashedWheelTimer = new HashedWheelTimer();
     }
 
-
     protected NetconfServerDispatcher createDispatcher(
             NetconfOperationServiceFactoryListenerImpl factoriesListener, SessionMonitoringService sessionMonitoringService,
             DefaultCommitNotificationProducer commitNotifier) {
@@ -45,6 +52,13 @@ public class AbstractNetconfConfigTest extends AbstractConfigTest {
         return new NetconfServerDispatcher(serverChannelInitializer, nettyThreadgroup, nettyThreadgroup);
     }
 
+    protected HashedWheelTimer getHashedWheelTimer() {
+        return hashedWheelTimer;
+    }
+
+    protected EventLoopGroup getNettyThreadgroup() {
+        return nettyThreadgroup;
+    }
 
     @After
     public void cleanUpTimer() {
@@ -52,4 +66,13 @@ public class AbstractNetconfConfigTest extends AbstractConfigTest {
         nettyThreadgroup.shutdownGracefully();
     }
 
+    public NetconfClientConfiguration getClientConfiguration(final InetSocketAddress tcpAddress, final int timeout) {
+        final NetconfClientConfigurationBuilder b = NetconfClientConfigurationBuilder.create();
+        b.withAddress(tcpAddress);
+        b.withSessionListener(new SimpleNetconfClientSessionListener());
+        b.withReconnectStrategy(new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE,
+                timeout));
+        b.withConnectionTimeoutMillis(timeout);
+        return b.build();
+    }
 }
index d7f77148e812f98cf466f1250ee49d82aee2cb71..3fa1b0195a4a95c0acda2a04edbe7a556c7dfb58 100644 (file)
@@ -7,14 +7,7 @@
  */
 package org.opendaylight.controller.netconf.it;
 
-import org.apache.commons.io.IOUtils;
-import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
-import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreService;
-import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreServiceImpl;
-import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import static org.junit.Assert.assertNotNull;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -24,7 +17,14 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 
-import static org.junit.Assert.assertNotNull;
+import org.apache.commons.io.IOUtils;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreService;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreServiceImpl;
+import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreSnapshot;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
+import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 
 public class HardcodedYangStoreService implements YangStoreService {
 
index af83fe46027ee6816855ab1a6e051139fea5603d..29afa93d373cb5e7a7b86c57b0f93b6cceeeb48e 100644 (file)
@@ -17,7 +17,6 @@ import static org.mockito.Mockito.mock;
 import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertContainsElementWithName;
 import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertElementsCount;
 import static org.opendaylight.controller.netconf.util.xml.XmlUtil.readXmlToDocument;
-import io.netty.channel.ChannelFuture;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -43,6 +42,7 @@ import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.api.jmx.CommitJMXNotification;
 import org.opendaylight.controller.netconf.api.monitoring.NetconfManagementSession;
 import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
 import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
@@ -65,16 +65,14 @@ import org.xml.sax.SAXException;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
+import io.netty.channel.ChannelFuture;
 
 public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
 
     private static final InetSocketAddress tcpAddress = new InetSocketAddress("127.0.0.1", 12023);
 
-
-
     private NetconfClientDispatcher clientDispatcher;
-
-    DefaultCommitNotificationProducer commitNotifier;
+    private DefaultCommitNotificationProducer commitNotifier;
 
     @Before
     public void setUp() throws Exception {
@@ -95,7 +93,7 @@ public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
         ChannelFuture s = dispatch.createServer(tcpAddress);
         s.await();
 
-        clientDispatcher = new NetconfClientDispatcher(nettyThreadgroup, nettyThreadgroup, 5000);
+        clientDispatcher = new NetconfClientDispatcherImpl(getNettyThreadgroup(), getNettyThreadgroup(), getHashedWheelTimer());
     }
 
     @After
@@ -124,12 +122,12 @@ public class NetconfConfigPersisterITTest extends AbstractNetconfConfigTest {
         VerifyingNotificationListener notificationVerifier = createCommitNotificationListener();
         VerifyingPersister mockedAggregator = mockAggregator();
 
-        try (TestingNetconfClient persisterClient = new TestingNetconfClient("persister", tcpAddress, 4000, clientDispatcher)) {
+        try (TestingNetconfClient persisterClient = new TestingNetconfClient("persister", clientDispatcher, getClientConfiguration(tcpAddress, 4000))) {
             try (ConfigPersisterNotificationHandler configPersisterNotificationHandler = new ConfigPersisterNotificationHandler(
                     platformMBeanServer, mockedAggregator)) {
 
 
-                try (TestingNetconfClient netconfClient = new TestingNetconfClient("client", tcpAddress, 4000, clientDispatcher)) {
+                try (TestingNetconfClient netconfClient = new TestingNetconfClient("client", clientDispatcher, getClientConfiguration(tcpAddress, 4000))) {
                     NetconfMessage response = netconfClient.sendMessage(loadGetConfigMessage());
                     assertContainsElementWithName(response.getDocument(), "modules");
                     assertContainsElementWithName(response.getDocument(), "services");
index cc9e8c367a9f3d2871842510daddd29aa95ea441..4dc4b707d4708253579e8135ddd1b6c1e95af1c9 100644 (file)
@@ -8,45 +8,71 @@
 
 package org.opendaylight.controller.netconf.it;
 
-import io.netty.channel.ChannelFuture;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.management.ManagementFactory;
+import java.net.InetSocketAddress;
+import java.nio.file.Files;
+import java.util.Collection;
+import java.util.List;
+
+import junit.framework.Assert;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
 import org.opendaylight.controller.config.spi.ModuleFactory;
+import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
+import org.opendaylight.controller.netconf.client.SimpleNetconfClientSessionListener;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder;
 import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
 import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer;
 import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher;
 import org.opendaylight.controller.netconf.impl.osgi.NetconfOperationServiceFactoryListenerImpl;
-
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLContext;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.management.ManagementFactory;
-import java.net.InetSocketAddress;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.CertificateException;
-import java.util.Collection;
-import java.util.List;
+import org.opendaylight.controller.netconf.ssh.NetconfSSHServer;
+import org.opendaylight.controller.netconf.ssh.authentication.AuthProvider;
+import org.opendaylight.controller.netconf.ssh.authentication.PEMGenerator;
+import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
+import org.opendaylight.controller.netconf.util.messages.NetconfMessageUtil;
+import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.opendaylight.controller.sal.authorization.AuthResultEnum;
+import org.opendaylight.controller.usermanager.IUserManager;
+import org.opendaylight.protocol.framework.NeverReconnectStrategy;
+
+import ch.ethz.ssh2.Connection;
+import io.netty.channel.ChannelFuture;
+import io.netty.util.concurrent.GlobalEventExecutor;
 
 public class NetconfITSecureTest extends AbstractNetconfConfigTest {
 
     private static final InetSocketAddress tlsAddress = new InetSocketAddress("127.0.0.1", 12024);
+    private static final InetSocketAddress tcpAddress = new InetSocketAddress("127.0.0.1", 12023);
 
     private DefaultCommitNotificationProducer commitNot;
-    private NetconfServerDispatcher dispatchS;
-
+    private NetconfSSHServer sshServer;
+    private NetconfMessage getConfig;
 
     @Before
     public void setUp() throws Exception {
-        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(mockedContext,getModuleFactories().toArray(
+        this.getConfig = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
+
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(mockedContext, getModuleFactories().toArray(
                 new ModuleFactory[0])));
 
         NetconfOperationServiceFactoryListenerImpl factoriesListener = new NetconfOperationServiceFactoryListenerImpl();
@@ -55,9 +81,14 @@ public class NetconfITSecureTest extends AbstractNetconfConfigTest {
         commitNot = new DefaultCommitNotificationProducer(ManagementFactory.getPlatformMBeanServer());
 
 
-        dispatchS = createDispatcher(factoriesListener);
-        ChannelFuture s = dispatchS.createServer(tlsAddress);
+        final NetconfServerDispatcher dispatchS = createDispatcher(factoriesListener);
+        ChannelFuture s = dispatchS.createServer(tcpAddress);
         s.await();
+
+        sshServer = NetconfSSHServer.start(tlsAddress.getPort(), tcpAddress, getAuthProvider());
+        Thread thread = new Thread(sshServer);
+        thread.setDaemon(true);
+        thread.start();
     }
 
     private NetconfServerDispatcher createDispatcher(NetconfOperationServiceFactoryListenerImpl factoriesListener) {
@@ -66,19 +97,10 @@ public class NetconfITSecureTest extends AbstractNetconfConfigTest {
 
     @After
     public void tearDown() throws Exception {
+        sshServer.stop();
         commitNot.close();
     }
 
-    private SSLContext getSslContext() throws KeyStoreException, NoSuchAlgorithmException, CertificateException,
-            IOException, UnrecoverableKeyException, KeyManagementException {
-        final InputStream keyStore = getClass().getResourceAsStream("/keystore.jks");
-        final InputStream trustStore = getClass().getResourceAsStream("/keystore.jks");
-        SSLContext sslContext = SSLUtil.initializeSecureContext("password", keyStore, trustStore, KeyManagerFactory.getDefaultAlgorithm());
-        keyStore.close();
-        trustStore.close();
-        return sslContext;
-    }
-
     private HardcodedYangStoreService getYangStore() throws YangStoreException, IOException {
         final Collection<InputStream> yangDependencies = NetconfITTest.getBasicYangs();
         return new HardcodedYangStoreService(yangDependencies);
@@ -90,9 +112,57 @@ public class NetconfITSecureTest extends AbstractNetconfConfigTest {
 
     @Test
     public void testSecure() throws Exception {
-        NetconfClientDispatcher dispatch = new NetconfClientDispatcher(nettyThreadgroup, nettyThreadgroup, 5000);
-        try (TestingNetconfClient netconfClient = new TestingNetconfClient("tls-client", tlsAddress, 4000, dispatch))  {
-
+        NetconfClientDispatcher dispatch = new NetconfClientDispatcherImpl(getNettyThreadgroup(), getNettyThreadgroup(), getHashedWheelTimer());
+        try (TestingNetconfClient netconfClient = new TestingNetconfClient("testing-ssh-client", dispatch, getClientConfiguration())) {
+            NetconfMessage response = netconfClient.sendMessage(getConfig);
+            Assert.assertFalse("Unexpected error message " + XmlUtil.toString(response.getDocument()),
+                    NetconfMessageUtil.isErrorMessage(response));
+
+            NetconfMessage gs = new NetconfMessage(XmlUtil.readXmlToDocument("<rpc message-id=\"2\"\n" +
+                    "     xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n" +
+                    "    <get-schema xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring\">\n" +
+                    "        <identifier>config</identifier>\n" +
+                    "    </get-schema>\n" +
+                    "</rpc>\n"));
+
+            response = netconfClient.sendMessage(gs);
+            Assert.assertFalse("Unexpected error message " + XmlUtil.toString(response.getDocument()),
+                    NetconfMessageUtil.isErrorMessage(response));
         }
     }
+
+    public NetconfClientConfiguration getClientConfiguration() throws IOException {
+        final NetconfClientConfigurationBuilder b = NetconfClientConfigurationBuilder.create();
+        b.withAddress(tlsAddress);
+        b.withSessionListener(new SimpleNetconfClientSessionListener());
+        b.withReconnectStrategy(new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE, 5000));
+        b.withProtocol(NetconfClientConfiguration.NetconfClientProtocol.SSH);
+        b.withConnectionTimeoutMillis(5000);
+        b.withAuthHandler(getAuthHandler());
+        return b.build();
+    }
+
+    public AuthProvider getAuthProvider() throws Exception {
+        final IUserManager userManager = mock(IUserManager.class);
+        doReturn(AuthResultEnum.AUTH_ACCEPT).when(userManager).authenticate(anyString(), anyString());
+
+        final File privateKeyFile = Files.createTempFile("tmp-netconf-test", "pk").toFile();
+        privateKeyFile.deleteOnExit();
+        String privateKeyPEMString = PEMGenerator.generateTo(privateKeyFile);
+        return new AuthProvider(userManager, privateKeyPEMString);
+    }
+
+    public AuthenticationHandler getAuthHandler() throws IOException {
+        final AuthenticationHandler authHandler = mock(AuthenticationHandler.class);
+        doAnswer(new Answer() {
+            @Override
+            public Object answer(final InvocationOnMock invocation) throws Throwable {
+                Connection conn = (Connection) invocation.getArguments()[0];
+                conn.authenticateWithPassword("user", "pwd");
+                return null;
+            }
+        }).when(authHandler).authenticate(any(Connection.class));
+        doReturn("auth handler").when(authHandler).toString();
+        return authHandler;
+    }
 }
index b77d92e7cb662aecdd4421d7097f0bf6b909988c..e99e51e92f67c14e28c06a7b52dc65b64894ac28 100644 (file)
@@ -8,11 +8,14 @@
 
 package org.opendaylight.controller.netconf.it;
 
-import ch.ethz.ssh2.Connection;
-import ch.ethz.ssh2.Session;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import io.netty.channel.ChannelFuture;
+import static java.util.Collections.emptyList;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.management.ManagementFactory;
@@ -25,9 +28,12 @@ import java.util.List;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeoutException;
+
 import javax.management.ObjectName;
 import javax.xml.parsers.ParserConfigurationException;
+
 import junit.framework.Assert;
+
 import org.apache.commons.io.IOUtils;
 import org.junit.After;
 import org.junit.Before;
@@ -43,7 +49,7 @@ import org.opendaylight.controller.config.yang.test.impl.TestImplModuleFactory;
 import org.opendaylight.controller.netconf.StubUserManager;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
-import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
 import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
@@ -66,13 +72,13 @@ import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.xml.sax.SAXException;
-import static java.util.Collections.emptyList;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
+
+import ch.ethz.ssh2.Connection;
+import ch.ethz.ssh2.Session;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import io.netty.channel.ChannelFuture;
 
 public class NetconfITTest extends AbstractNetconfConfigTest {
 
@@ -90,7 +96,7 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
     private DefaultCommitNotificationProducer commitNot;
     private NetconfServerDispatcher dispatch;
 
-    private NetconfClientDispatcher clientDispatcher;
+    private NetconfClientDispatcherImpl clientDispatcher;
 
     @Before
     public void setUp() throws Exception {
@@ -109,7 +115,7 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
         ChannelFuture s = dispatch.createServer(tcpAddress);
         s.await();
 
-        clientDispatcher = new NetconfClientDispatcher(nettyThreadgroup, nettyThreadgroup, 5000);
+        clientDispatcher = new NetconfClientDispatcherImpl(getNettyThreadgroup(), getNettyThreadgroup(), getHashedWheelTimer());
     }
 
     private NetconfServerDispatcher createDispatcher(NetconfOperationServiceFactoryListenerImpl factoriesListener) {
@@ -176,7 +182,7 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
 
     @Test
     public void testNetconfClientDemonstration() throws Exception {
-        try (TestingNetconfClient netconfClient = new TestingNetconfClient("client", tcpAddress, 4000, clientDispatcher)) {
+        try (TestingNetconfClient netconfClient = new TestingNetconfClient("client", clientDispatcher, getClientConfiguration(tcpAddress, 4000))) {
 
             Set<String> capabilitiesFromNetconfServer = netconfClient.getCapabilities();
             long sessionId = netconfClient.getSessionId();
@@ -191,8 +197,8 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
 
     @Test
     public void testTwoSessions() throws Exception {
-        try (TestingNetconfClient netconfClient = new TestingNetconfClient("1", tcpAddress, 10000, clientDispatcher))  {
-            try (TestingNetconfClient netconfClient2 = new TestingNetconfClient("2", tcpAddress, 10000, clientDispatcher)) {
+        try (TestingNetconfClient netconfClient = new TestingNetconfClient("1", clientDispatcher, getClientConfiguration(tcpAddress, 10000)))  {
+            try (TestingNetconfClient netconfClient2 = new TestingNetconfClient("2", clientDispatcher, getClientConfiguration(tcpAddress, 10000))) {
             }
         }
     }
@@ -365,7 +371,7 @@ public class NetconfITTest extends AbstractNetconfConfigTest {
     }
 
     private TestingNetconfClient createSession(final InetSocketAddress address, final String expected) throws Exception {
-        final TestingNetconfClient netconfClient = new TestingNetconfClient("test " + address.toString(), address, 5000, clientDispatcher);
+        final TestingNetconfClient netconfClient = new TestingNetconfClient("test " + address.toString(), clientDispatcher, getClientConfiguration(address, 5000));
         assertEquals(expected, Long.toString(netconfClient.getSessionId()));
         return netconfClient;
     }
index 8e98ab6320c65d28e0dd1ab29ed5f37f2e31b14b..3b263f7e75cc826b55b893a76a1f5fbf4b051c34 100644 (file)
@@ -7,11 +7,24 @@
  */
 package org.opendaylight.controller.netconf.it;
 
-import com.google.common.base.Charsets;
-import com.google.common.base.Optional;
-import com.google.common.collect.Sets;
-import io.netty.channel.ChannelFuture;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertContainsElementWithText;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
 import junit.framework.Assert;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -19,7 +32,7 @@ import org.opendaylight.controller.config.manager.impl.factoriesresolver.Hardcod
 import org.opendaylight.controller.config.spi.ModuleFactory;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
 import org.opendaylight.controller.netconf.api.monitoring.NetconfManagementSession;
-import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
 import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl;
 import org.opendaylight.controller.netconf.confignetconfconnector.osgi.YangStoreException;
@@ -40,21 +53,10 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.opendaylight.controller.netconf.util.test.XmlUnitUtil.assertContainsElementWithText;
+import com.google.common.base.Charsets;
+import com.google.common.base.Optional;
+import com.google.common.collect.Sets;
+import io.netty.channel.ChannelFuture;
 
 public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
 
@@ -66,7 +68,7 @@ public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
     private DefaultCommitNotificationProducer commitNot;
     private NetconfServerDispatcher dispatch;
 
-    private NetconfClientDispatcher clientDispatcher;
+    private NetconfClientDispatcherImpl clientDispatcher;
 
     private NetconfMonitoringServiceImpl monitoringService;
 
@@ -88,7 +90,7 @@ public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
         ChannelFuture s = dispatch.createServer(tcpAddress);
         s.await();
 
-        clientDispatcher = new NetconfClientDispatcher(nettyThreadgroup, nettyThreadgroup, 5000);
+        clientDispatcher = new NetconfClientDispatcherImpl(getNettyThreadgroup(), getNettyThreadgroup(), getHashedWheelTimer());
     }
 
     private HardcodedYangStoreService getYangStore() throws YangStoreException, IOException {
@@ -120,8 +122,8 @@ public class NetconfMonitoringITTest extends AbstractNetconfConfigTest {
 
     @Test
     public void testGetResponseFromMonitoring() throws Exception {
-        try (TestingNetconfClient netconfClient = new TestingNetconfClient("client-monitoring", tcpAddress, 4000, clientDispatcher)) {
-        try (TestingNetconfClient netconfClient2 = new TestingNetconfClient("client-monitoring2", tcpAddress, 4000, clientDispatcher)) {
+        try (TestingNetconfClient netconfClient = new TestingNetconfClient("client-monitoring", clientDispatcher, getClientConfiguration(tcpAddress, 4000))) {
+        try (TestingNetconfClient netconfClient2 = new TestingNetconfClient("client-monitoring2", clientDispatcher, getClientConfiguration(tcpAddress, 4000))) {
             NetconfMessage response = netconfClient.sendMessage(loadGetMessage());
             assertSessionElementsInResponse(response.getDocument(), 2);
         }
index c54285bc908c817157287022d5dcc92011b0d145..981f1148e48520f300e6af00810054380285f31c 100644 (file)
@@ -19,8 +19,9 @@ import static org.ops4j.pax.exam.CoreOptions.options;
 import static org.ops4j.pax.exam.CoreOptions.streamBundle;
 import static org.ops4j.pax.exam.CoreOptions.systemPackages;
 import static org.ops4j.pax.exam.CoreOptions.systemProperty;
-import io.netty.channel.nio.NioEventLoopGroup;
 
+import io.netty.util.HashedWheelTimer;
+import io.netty.util.Timer;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.util.concurrent.ExecutionException;
@@ -34,11 +35,15 @@ import org.junit.Test;
 import org.junit.matchers.JUnitMatchers;
 import org.junit.runner.RunWith;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
-import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
+import org.opendaylight.controller.netconf.client.SimpleNetconfClientSessionListener;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder;
 import org.opendaylight.controller.netconf.client.test.TestingNetconfClient;
 import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
 import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
+import org.opendaylight.protocol.framework.NeverReconnectStrategy;
 import org.ops4j.pax.exam.Configuration;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.junit.PaxExam;
@@ -51,6 +56,9 @@ import org.xml.sax.SAXException;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Throwables;
 
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.util.concurrent.GlobalEventExecutor;
+
 @Ignore
 @RunWith(PaxExam.class)
 public class IdentityRefNetconfTest {
@@ -104,8 +112,8 @@ public class IdentityRefNetconfTest {
                 mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(),
                 mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(),
                 mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena-rta").versionAsInProject());
+                mavenBundle("org.openexi", "nagasena").versionAsInProject(),
+                mavenBundle("org.openexi", "nagasena-rta").versionAsInProject());
 
 
     }
@@ -121,15 +129,15 @@ public class IdentityRefNetconfTest {
     public void testIdRef() throws Exception {
         Preconditions.checkNotNull(broker, "Controller not initialized");
 
-        NioEventLoopGroup nettyThreadgroup = new NioEventLoopGroup();
-        NetconfClientDispatcher clientDispatcher = new NetconfClientDispatcher(nettyThreadgroup, nettyThreadgroup,
-                CLIENT_CONNECTION_TIMEOUT_MILLIS);
 
         NetconfMessage edit = xmlFileToNetconfMessage("netconfMessages/editConfig_identities.xml");
         NetconfMessage commit = xmlFileToNetconfMessage("netconfMessages/commit.xml");
         NetconfMessage getConfig = xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
 
-        try (TestingNetconfClient netconfClient = new TestingNetconfClient("client", tcpAddress, CLIENT_CONNECTION_TIMEOUT_MILLIS, clientDispatcher)) {
+        NioEventLoopGroup nettyThreadgroup = new NioEventLoopGroup();
+        Timer timer = new HashedWheelTimer();
+        NetconfClientDispatcherImpl clientDispatcher = new NetconfClientDispatcherImpl(nettyThreadgroup, nettyThreadgroup, timer);
+        try (TestingNetconfClient netconfClient = new TestingNetconfClient("client", clientDispatcher, getClientConfiguration(tcpAddress))) {
             sendMessage(edit, netconfClient);
             sendMessage(commit, netconfClient);
             sendMessage(getConfig, netconfClient, "id-test",
@@ -141,6 +149,9 @@ public class IdentityRefNetconfTest {
             clientDispatcher.close();
         } catch (Exception e) {
             fail(Throwables.getStackTraceAsString(e));
+        } finally {
+            nettyThreadgroup.shutdownGracefully().get();
+            timer.stop();
         }
     }
 
@@ -160,4 +171,14 @@ public class IdentityRefNetconfTest {
             ParserConfigurationException {
         return XmlFileLoader.xmlFileToNetconfMessage(fileName);
     }
+
+    public NetconfClientConfiguration getClientConfiguration(final InetSocketAddress tcpAddress) {
+        final NetconfClientConfigurationBuilder b = NetconfClientConfigurationBuilder.create();
+        b.withAddress(tcpAddress);
+        b.withSessionListener(new SimpleNetconfClientSessionListener());
+        b.withReconnectStrategy(new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE,
+                CLIENT_CONNECTION_TIMEOUT_MILLIS));
+        b.withConnectionTimeoutMillis(CLIENT_CONNECTION_TIMEOUT_MILLIS);
+        return b.build();
+    }
 }
index c08db906df51a00b5dc39d53bb30be252381b3ca..1f7eed250f5b61725ee32c01aa2b1ce1a3c46f37 100644 (file)
@@ -8,6 +8,7 @@
 
 package org.opendaylight.controller.netconf.mapping.api;
 
+import com.google.common.base.Objects;
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
@@ -51,13 +52,13 @@ public final class HandlingPriority implements Comparable<HandlingPriority> {
 
     @Override
     public int compareTo(HandlingPriority o) {
-        if (this == o){
+        if (this == o) {
             return 0;
         }
-        if (this.equals(CANNOT_HANDLE)){
+        if (isCannotHandle()) {
             return -1;
         }
-        if (o.equals(CANNOT_HANDLE)){
+        if (o.isCannotHandle()) {
             return 1;
         }
 
@@ -70,7 +71,8 @@ public final class HandlingPriority implements Comparable<HandlingPriority> {
         if (priority < o.priority){
             return -1;
         }
-        throw new IllegalStateException("Unexpected state");
+
+        throw new IllegalStateException("Unexpected state comparing " + this + " with " + o);
     }
 
     @Override
@@ -95,4 +97,11 @@ public final class HandlingPriority implements Comparable<HandlingPriority> {
     public int hashCode() {
         return priority != null ? priority.hashCode() : 0;
     }
+
+    @Override
+    public String toString() {
+        return Objects.toStringHelper(this)
+                .add("priority", priority)
+                .toString();
+    }
 }
index 51054dd938ac8349447e694ea5c2698a7bc6d5c8..ff950e95e9700289bf9dda3bed79642f1fba096e 100644 (file)
@@ -68,9 +68,9 @@ public final class NetconfSSHServer implements Runnable {
         while (up) {
             logger.trace("Starting new socket thread.");
             try {
-               SocketThread.start(ss.accept(), clientAddress, sesssionId.incrementAndGet(),authProvider);
+               SocketThread.start(ss.accept(), clientAddress, sesssionId.incrementAndGet(), authProvider);
             } catch (IOException e) {
-                logger.error("Exception occurred during socket thread initialization {}",e);
+                logger.error("Exception occurred during socket thread initialization {}", e);
             }
         }
     }
index d6566c8ffa69f3e0fd46d6775e8ced177cffd911..04639cb36fb665753bda35908321508688e75103 100644 (file)
@@ -66,7 +66,7 @@ public class SocketThread implements Runnable, ServerAuthenticationCallback, Ser
         try {
             conn.setPEMHostKey(authProvider.getPEMAsCharArray(), "netconf");
         } catch (Exception e) {
-            logger.debug("Server authentication setup failed.");
+            logger.warn("Server authentication setup failed.", e);
         }
         conn.setAuthenticationCallback(this);
         conn.setServerConnectionCallback(this);
index 65d2954afd9d0f2e1cd607acb170b2b444928cb7..14a71fd9ba6a35c04eb0405df187cec8436be2e2 100644 (file)
       <artifactId>ganymed</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <groupId>org.openexi</groupId>
       <artifactId>nagasena</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.controller.thirdparty</groupId>
+      <groupId>org.openexi</groupId>
       <artifactId>nagasena-rta</artifactId>
     </dependency>
 
index 86ef75d45f8b4d5eaec418a25d1b248bada9eb11..50e84463f5651948f408ef703ce6ee2d93590330 100644 (file)
@@ -29,7 +29,6 @@
     <module>netconf-monitoring</module>
     <module>ietf-netconf-monitoring</module>
     <module>ietf-netconf-monitoring-extension</module>
-    <module>../../third-party/org.openexi</module>
   </modules>
 
   <dependencies>
index 124f2d84e88e42d7f52e2f0d1a2970e2e6951bf3..cb21d7c1673b797913fb491af6374dbec955ddb5 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/connectionmanager"/>
index 9dcab30900a46e31716678390ed4b486c55968b3..c4e08ae897e767fe3dfc80d3a6242e8fa0377e89 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/containermanager"/>
   </services>
@@ -8,4 +8,4 @@
   <modules>
     <docs docsDir="rest" title="Container Manager REST API" includeExampleXml="true" includeExampleJson="true"/>
   </modules>
-</enunciate>
\ No newline at end of file
+</enunciate>
index 13a2d27c414d3fd3b1e7fe12c599aa5613d24efb..5382d541380082fb606d65d510f083d9c7e04b6c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/controllermanager"/>
index 3d45257ce21a77e99b6939c6b729cc862b8ab881..cec5a93a9e04ac79f527f2b22299e75cfd21f60b 100644 (file)
@@ -11,15 +11,17 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.opendaylight.controller.sal.core.Property;
+
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.opendaylight.controller.sal.core.Property;
 
 /**
  * The class describes set of properties attached to a controller
@@ -29,12 +31,12 @@ import org.opendaylight.controller.sal.core.Property;
 @XmlAccessorType(XmlAccessType.NONE)
 public class ControllerProperties {
 
-    @XmlElementRef
-    @XmlElementWrapper
-    @JsonIgnore
     /**
      * Set to store the controller properties
      */
+    @XmlElement(name="property")
+    @XmlElementWrapper
+    @JsonIgnore
     private Set<Property> properties;
 
     // JAXB required constructor
index 3ac676907bae795ff14404db66cc77dbe5bf5c09..8a87876af3a790565622e59de821105742d1ea0e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/flowprogrammer"/>
index df56dbae360654b8252502c19ae3d433a6f5a854..a8be00a3d358a0f480df6fcd2660ad4c09051f38 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/hosttracker"/>
index ce9186eb33753f281b913f6757c4c484cf2c702e..c78243766ef9a18942fb28680a01ded1861d5b14 100644 (file)
@@ -1,13 +1,13 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services> </services>
 
   <modules>
     <!-- Disable doc generation -->
     <docs disabled="true"/>
-
+    <swagger disabled="true"/>
     <!-- Disable all the client generation tools -->
     <basic-app disabled="true" />
     <c disabled="true" />
index 6de347fdded0b541fd2c6cf01ec62131314c632b..ae8924feb6aaf79970c042b4a88af698e23e2bb7 100644 (file)
@@ -7,12 +7,6 @@
     <version>1.4.2-SNAPSHOT</version>
     <relativePath>../../commons/opendaylight</relativePath>
   </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-    <tag>HEAD</tag>
-  </scm>
 
   <artifactId>northbound.client</artifactId>
   <version>0.0.1-SNAPSHOT</version>
     <docs.output.dir>${project.build.directory}/rest-api-docs</docs.output.dir>
     <java-client>${project.build.directory}/enunciate/build/java-client/full-client.jar</java-client>
     <java-client-sources>${project.build.directory}/enunciate/build/java-client/full-client-sources.jar</java-client-sources>
-    <json-client>${project.build.directory}/enunciate/build/java-client/full-json-client.jar</json-client>
-    <json-client-sources>${project.build.directory}/enunciate/build/java-client/full-json-client-sources.jar</json-client-sources>
   </properties>
 
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.enunciate</groupId>
+      <artifactId>enunciate-core-annotations</artifactId>
+    </dependency>
+
+    <!-- add dependency on all northbound bundles -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>connectionmanager.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>controllermanager.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>flowprogrammer.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>forwarding.staticrouting.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>hosttracker.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.bridgedomain.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.neutron.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>statistics.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>subnets.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>switchmanager.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>topology.northbound</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>usermanager.northbound</artifactId>
+    </dependency>
+  </dependencies>
+
   <build>
     <plugins>
-      <plugin>
-        <groupId>org.codehaus.enunciate</groupId>
-        <artifactId>maven-enunciate-plugin</artifactId>
-      </plugin>
 
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
-        <version>1.5</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>run</goal>
-            </goals>
-          </execution>
-        </executions>
         <configuration>
           <target>
-            <taskdef resource="net/sf/antcontrib/antcontrib.properties"
-                     classpathref="maven.plugin.classpath" />
+            <taskdef classpathref="maven.plugin.classpath" resource="net/sf/antcontrib/antcontrib.properties"></taskdef>
             <patternset id="rest.paths">
-              <include name="**/target/site/wsdocs/**"/>
-              <exclude name="**/java-client/**"/>
+              <include name="**/target/site/wsdocs/**"></include>
+              <exclude name="**/java-client/**"></exclude>
             </patternset>
 
-            <echo message="======== Assembling enunciate docs ========"/>
+            <echo message="======== Assembling enunciate docs ========"></echo>
             <!-- cleanup existing generated files -->
-            <delete dir="${docs.output.dir}"/>
-            <delete file="${docs.output.dir}.zip"/>
-            <mkdir dir="${docs.output.dir}"/>
+            <delete dir="${docs.output.dir}"></delete>
+            <delete file="${docs.output.dir}.zip"></delete>
+            <mkdir dir="${docs.output.dir}"></mkdir>
             <!-- copy enunciate docs to stage -->
             <copy todir="${docs.output.dir}">
               <fileset dir="${basedir}/../../..">
-                <patternset refid="rest.paths"/>
+                <patternset refid="rest.paths"></patternset>
               </fileset>
-              <mapper type="regexp"
-                      from="^(.*)/([^/]+)/target/site/wsdocs/(.*)$$"
-                      to="\2/\3"/>
+              <mapper from="^(.*)/([^/]+)/target/site/wsdocs/(.*)$$" to="\2/\3" type="regexp"></mapper>
             </copy>
+            <!-- Remove Swagger doc link from enunciate generated index.html -->
+            <replaceregexp byline="false" match="&lt;h2&gt;Swagger&lt;/h2&gt;${line.separator}\s*&lt;p&gt;${line.separator}.*${line.separator}\s*&lt;/p&gt;" replace="">
+              <fileset dir="${docs.output.dir}">
+                <include name="**/index.html"></include>
+              </fileset>
+            </replaceregexp>
             <!-- generate index.html -->
             <!-- append header -->
-            <echo file="${docs.output.dir}/index.html" append="true">
-              &lt;![CDATA[
+            <echo append="true" file="${docs.output.dir}/index.html">&lt;![CDATA[
               &lt;html&gt;
               &lt;head&gt;
               &lt;title&gt; OpenDaylight REST API Documentation &lt;/title&gt;
               &lt;h2&gt;OpenDaylight REST API Documentation&lt;/h2&gt;
               &lt;p&gt; OpenDaylight supports the following &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;Representational State Transfer (REST)&lt;/a&gt; APIs: &lt;/p&gt;
               &lt;h4&gt;
-              ]]&gt;
-            </echo>
-            <dirset id="nbset" dir="${docs.output.dir}">
-              <include name="*"/>
+              ]]&gt;</echo>
+            <dirset dir="${docs.output.dir}" id="nbset">
+              <include name="*"></include>
             </dirset>
-            <pathconvert pathsep="&amp;#36;{line.separator}"
-                         property="nbs"
-                         refid="nbset"/>
-            <echo file="${docs.output.dir}/index.html"
-                  append="true"
-                  message="${nbs}"/>
-            <replaceregexp file="${docs.output.dir}/index.html"
-                           match="^\${docs.output.dir}/(.*)$"
-                           replace="&amp;lt;li&amp;gt;&amp;lt;a href=\1/index.html&amp;gt; \1 &amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;"
-                           byline="true"/>
+            <pathconvert pathsep="&amp;#36;{line.separator}" property="nbs" refid="nbset"></pathconvert>
+            <echo append="true" file="${docs.output.dir}/index.html" message="${nbs}"></echo>
+            <replaceregexp byline="true" file="${docs.output.dir}/index.html" match="^\${docs.output.dir}/(.*)$" replace="&amp;lt;li&amp;gt;&amp;lt;a href=\1/index.html&amp;gt; \1 &amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;"></replaceregexp>
 
             <!-- append footer -->
-            <echo file="${docs.output.dir}/index.html" append="true">
-              &lt;![CDATA[
+            <echo append="true" file="${docs.output.dir}/index.html">&lt;![CDATA[
               &lt;/h4&gt;
               &lt;i&gt;---&lt;/i&gt;
               &lt;/body&gt;
               &lt;/html&gt;
-              ]]&gt;
-            </echo>
+              ]]&gt;</echo>
             <!-- archive all the docs excluding whatever is not needed -->
-            <echo message="======== Archiving enunciate docs ========"/>
+            <echo message="======== Archiving enunciate docs ========"></echo>
             <zip destfile="${docs.output.dir}.zip">
-              <zipfileset dir="${docs.output.dir}"/>
+              <zipfileset dir="${docs.output.dir}"></zipfileset>
             </zip>
 
-            <echo message="======== Build successful ========"/>
-            <echo message="REST docs archive: ${docs.output.dir}.zip"/>
+            <echo message="======== Build successful ========"></echo>
+            <echo message="REST docs archive: ${docs.output.dir}.zip"></echo>
           </target>
         </configuration>
         <dependencies>
             <version>20020829</version>
           </dependency>
         </dependencies>
+        <executions>
+          <execution>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <phase>package</phase>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.enunciate</groupId>
+        <artifactId>maven-enunciate-plugin</artifactId>
       </plugin>
 
       <plugin>
         <executions>
           <execution>
             <id>attach-artifacts</id>
-            <phase>package</phase>
             <goals>
               <goal>attach-artifact</goal>
             </goals>
+            <phase>package</phase>
             <configuration>
               <artifacts>
                 <artifact>
                   <type>jar</type>
                   <classifier>full-java-client-sources</classifier>
                 </artifact>
-                <artifact>
-                  <file>${json-client}</file>
-                  <type>jar</type>
-                  <classifier>full-json-client</classifier>
-                </artifact>
-                <artifact>
-                  <file>${json-client-sources}</file>
-                  <type>jar</type>
-                  <classifier>full-json-client-sources</classifier>
-                </artifact>
               </artifacts>
             </configuration>
           </execution>
       </plugin>
     </plugins>
   </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.codehaus.enunciate</groupId>
-      <artifactId>enunciate-core-annotations</artifactId>
-    </dependency>
-
-    <!-- add dependency on all northbound bundles -->
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>connectionmanager.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>controllermanager.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>flowprogrammer.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>hosttracker.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>networkconfig.bridgedomain.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>networkconfig.neutron.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>forwarding.staticrouting.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>statistics.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>subnets.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>switchmanager.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>topology.northbound</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>usermanager.northbound</artifactId>
-    </dependency>
-  </dependencies>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
 </project>
index f5a7ef12337d87de1e07d2f67e5959a5a5367d5e..1555743ea83916dcad4ad9f77db334726b1e7276 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/networkconfig/bridgedomain"/>
@@ -8,5 +8,5 @@
 
   <modules>
     <docs docsDir="rest" title="Bridge Domain Configuration REST API" includeExampleXml="true" includeExampleJson="true"/>
-  </modules>
+   </modules>
 </enunciate>
index b9e4f7ecc1008d3c04820e3e6458afe547a8073b..66160255f390ba29a88dd3a39881d568e1866d91 100644 (file)
@@ -1,12 +1,12 @@
-<?xml version="1.0"?>\r
-<enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">\r
-\r
-  <services>\r
-    <rest defaultRestSubcontext="/controller/nb/v2/neutron"/>\r
-  </services>\r
-\r
-  <modules>\r
-    <docs docsDir="rest" title="OpenStack Neutron REST API" includeExampleXml="false" includeExampleJson="true"/>\r
-  </modules>\r
-</enunciate>\r
+<?xml version="1.0"?>
+<enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
+
+  <services>
+    <rest defaultRestSubcontext="/controller/nb/v2/neutron"/>
+  </services>
+
+  <modules>
+    <docs docsDir="rest" title="OpenStack Neutron REST API" includeExampleXml="false" includeExampleJson="true"/>
+   </modules>
+</enunciate>
index bc0ab2b78aac9248a79fbd4d344658091f598ed7..a528f7c1599f1f996b7547ba5d37f9043a8bc5ee 100644 (file)
@@ -10,9 +10,6 @@
   <artifactId>networkconfig.neutron.northbound</artifactId>
   <version>0.4.2-SNAPSHOT</version>
   <packaging>bundle</packaging>
-  <properties>
-    <enunciate.version>1.26.2</enunciate.version>
-  </properties>
   <dependencies>
     <dependency>
       <groupId>com.sun.jersey</groupId>
       <plugin>
         <groupId>org.codehaus.enunciate</groupId>
         <artifactId>maven-enunciate-plugin</artifactId>
-        <configuration>
-          <configFile>enunciate.xml</configFile>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>docs</goal>
-            </goals>
-          </execution>
-        </executions>
       </plugin>
     </plugins>
   </build>
index 402b6553718852daf6b4fb863a114939925ecfb4..4d2f1cb611f40cc4aa9167e6b34525ecd1c0a09e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/staticroute"/>
index 63ae43975858f63284e2ad2ad51c0b532efb65be..c5f9140c76a398c5f35c01b7e958ce5faa1b800f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/statistics"/>
index abdc40a174225cef3073fb45b5c19a7cfb462f43..e75daf94ee0ecb2559231fb207de2698405f6243 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/subnetservice"/>
index 6f2dd4d0e76892dc566a55411ee6aea1ebcc47e5..3db309d46fa7b07932dc39eddc9acf8d6782734e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/switchmanager"/>
index 00f0d4b0544fd7c474efae06550e0961ef08025c..bb3fc0cc036899705582315f06fbb288b40ba75d 100644 (file)
@@ -13,18 +13,19 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementRef;
 import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import org.opendaylight.controller.sal.core.NodeConnector;
 import org.opendaylight.controller.sal.core.Property;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 /**
  * The class describes set of properties attached to a node connector
  */
@@ -34,7 +35,8 @@ import org.opendaylight.controller.sal.core.Property;
 public class NodeConnectorProperties {
     @XmlElement
     private NodeConnector nodeconnector;
-    @XmlElementRef
+
+    @XmlElement(name="property")
     @XmlElementWrapper
     @JsonIgnore
     private Set<Property> properties;
index 51e96c49eaf4cd7ac39803c1bde77abe96c821cc..380d759ab7ff9185de1422ddfdb46319b085f883 100644 (file)
@@ -13,18 +13,19 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementRef;
 import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import org.opendaylight.controller.sal.core.Node;
 import org.opendaylight.controller.sal.core.Property;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 /**
  * The class describes set of properties attached to a node
  */
@@ -34,7 +35,8 @@ import org.opendaylight.controller.sal.core.Property;
 public class NodeProperties {
     @XmlElement
     private Node node;
-    @XmlElementRef
+
+    @XmlElement(name="property")
     @XmlElementWrapper
     @JsonIgnore
     private Set<Property> properties;
index fed0f68e3086b735d3ff66d284a6c7af5039aa33..b70ea740710e8ffc1d2e11e1005d2b7aa8ce7eae 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/topology"/>
index 1d4a8a66eec478c963cd76f5cc14dffca76b8ddb..d43b9bc89335b058b2fe06bdce604be674a495f4 100644 (file)
@@ -13,24 +13,26 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementRef;
 import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import org.opendaylight.controller.sal.core.Edge;
 import org.opendaylight.controller.sal.core.Property;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 public class EdgeProperties {
     @XmlElement
     private Edge edge;
-    @XmlElementRef
+
+    @XmlElement(name="property")
     @XmlElementWrapper
     @JsonIgnore
     private Set<Property> properties;
index a0b95465398fb60c4491f34244ba437b489df19c..0386c759b2f61086dbf979830a06274ef336b27e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd">
 
   <services>
     <rest defaultRestSubcontext="/controller/nb/v2/usermanager"/>
index ae48a3a45118533785f5c3175a68df107d9c7c0a..86e6a360dd50c67d38fc70cf4147bc328f3d4274 100644 (file)
@@ -164,7 +164,7 @@ public class Pool {
     public boolean removeVIP(String name){
         for(VIP vip: this.vips){
             if(vip.getName().equals(name)){
-                this.members.remove(vip);
+                this.vips.remove(vip);
                 return true;
             }
         }
index 94e67247c8eaa44696f83d2950bea6650732f89a..a48d3317738fff283cf37d6eecbbb4cf96781ab4 100644 (file)
@@ -19,7 +19,10 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.Timer;
+import java.util.TimerTask;
 
 import org.opendaylight.controller.clustering.services.CacheConfigException;
 import org.opendaylight.controller.clustering.services.CacheExistException;
@@ -100,6 +103,97 @@ public class SimpleForwardingImpl implements IfNewHostNotify,
     private ISwitchManager switchManager;
     private IDataPacketService dataPacketService;
 
+    /**
+     * Ip packets that are punted may not have their destination known by hostTracker at the time it
+     * is presented to SimpleForwardingImpl. Instead of dropping the packet, we will keep it around
+     * for a 'little' while, to accommodate any transients. See bug 590 for more details.
+     */
+    private class PendingPacketData {
+        private final static byte MAX_AGE = 2;
+
+        public final IPv4 pkt;
+        public final NodeConnector incomingNodeConnector;
+        private byte age;
+
+        public PendingPacketData(IPv4 pkt, NodeConnector incomingNodeConnector) {
+            this.pkt = pkt;
+            this.incomingNodeConnector = incomingNodeConnector;
+            this.age = 0;
+        }
+        boolean bumpAgeAndCheckIfTooOld() { return ++age > MAX_AGE; }
+    }
+    private static final int MAX_PENDING_PACKET_DESTINATIONS = 64;
+    private ConcurrentMap<InetAddress, PendingPacketData> pendingPacketDestinations;
+    private Timer pendingPacketsAgerTimer;
+
+    private class PendingPacketsAgerTimerHandler extends TimerTask {
+        @Override
+        public void run() {
+            if (pendingPacketDestinations == null) {
+                return;
+            }
+            try {
+                Iterator<ConcurrentMap.Entry<InetAddress, PendingPacketData>> iterator =
+                        pendingPacketDestinations.entrySet().iterator();
+                while (iterator.hasNext()) {
+                    ConcurrentHashMap.Entry<InetAddress, PendingPacketData> entry = iterator.next();
+                    InetAddress dIP = entry.getKey();
+                    PendingPacketData pendingPacketData = entry.getValue();
+
+                    if (pendingPacketData.bumpAgeAndCheckIfTooOld()) {
+                        iterator.remove(); // safe to remove while iterating...
+                        log.debug("Pending packet for {} has been aged out", dIP);
+                    } else {
+                        /** Replace the entry for a key only if currently mapped to some value.
+                         * This will protect the concurrent map against a race where this thread
+                         * would be re-adding an entry that just got taken out.
+                         */
+                        pendingPacketDestinations.replace(dIP, pendingPacketData);
+                    }
+                }
+            } catch (IllegalStateException e) {
+                log.warn("IllegalStateException Received by PendingPacketsAgerTimerHandler from: {}",
+                        e.getMessage());
+            }
+        }
+    }
+
+    /**
+     * Add punted packet to pendingPackets
+     */
+    private void addToPendingPackets(InetAddress dIP, IPv4 pkt, NodeConnector incomingNodeConnector) {
+        if (pendingPacketDestinations.size() >= MAX_PENDING_PACKET_DESTINATIONS) {
+            log.info("Will not pend packet for {}: Too many destinations", dIP);
+            return;
+        }
+
+        /** TODO: The current implementation allows for up to 1 pending packet per InetAddress.
+         * This limitation is done for sake of simplicity. A potential enhancement could be to use a
+         * ConcurrentMultiMap instead of ConcurrentMap.
+         */
+        if (pendingPacketDestinations.containsKey(dIP)) {
+            log.trace("Will not pend packet for {}: Already have a packet pending", dIP);
+            return;
+        }
+
+        PendingPacketData pendingPacketData = new PendingPacketData(pkt, incomingNodeConnector);
+        pendingPacketDestinations.put(dIP, pendingPacketData);
+        log.debug("Pending packet for {}", dIP);
+    }
+
+    /**
+     * Send punted packet to given destination. This is invoked when there is a certain level of
+     * hope that the destination is known by hostTracker.
+     */
+    private void sendPendingPacket(InetAddress dIP) {
+        PendingPacketData pendingPacketData = pendingPacketDestinations.get(dIP);
+        if (pendingPacketData != null) {
+            handlePuntedIPPacket(pendingPacketData.pkt, pendingPacketData.incomingNodeConnector, false);
+            log.trace("Packet for {} is no longer pending", dIP);
+            pendingPacketDestinations.remove(dIP);
+        }
+    }
+
     /**
      * Return codes from the programming of the perHost rules in HW
      */
@@ -170,6 +264,15 @@ public class SimpleForwardingImpl implements IfNewHostNotify,
     public void startUp() {
         allocateCaches();
         retrieveCaches();
+        nonClusterObjectCreate();
+    }
+
+    public void nonClusterObjectCreate() {
+        pendingPacketDestinations = new ConcurrentHashMap<InetAddress, PendingPacketData>();
+
+        /* Pending Packets Ager Timer to go off every 6 seconds to implement pending packet aging */
+        pendingPacketsAgerTimer = new Timer();
+        pendingPacketsAgerTimer.schedule(new PendingPacketsAgerTimerHandler(), 6000, 6000);
     }
 
     /**
@@ -838,6 +941,9 @@ public class SimpleForwardingImpl implements IfNewHostNotify,
         Set<Node> switches = preparePerHostRules(host);
         if (switches != null) {
             installPerHostRules(host, switches);
+
+            // Green light for sending pending packet to this host. Safe to call if there are none.
+            sendPendingPacket(host.getNetworkAddress());
         }
     }
 
@@ -962,6 +1068,8 @@ public class SimpleForwardingImpl implements IfNewHostNotify,
      *
      */
     void stop() {
+        pendingPacketsAgerTimer.cancel();
+        pendingPacketDestinations.clear();
     }
 
     public void setSwitchManager(ISwitchManager switchManager) {
@@ -985,14 +1093,14 @@ public class SimpleForwardingImpl implements IfNewHostNotify,
             Object nextPak = formattedPak.getPayload();
             if (nextPak instanceof IPv4) {
                 log.trace("Handle punted IP packet: {}", formattedPak);
-                handlePuntedIPPacket((IPv4) nextPak, inPkt.getIncomingNodeConnector());
+                handlePuntedIPPacket((IPv4) nextPak, inPkt.getIncomingNodeConnector(), true);
             }
         }
         return PacketResult.IGNORED;
 
     }
 
-    private void handlePuntedIPPacket(IPv4 pkt, NodeConnector incomingNodeConnector) {
+    private void handlePuntedIPPacket(IPv4 pkt, NodeConnector incomingNodeConnector, boolean allowAddPending) {
         InetAddress dIP = NetUtils.getInetAddress(pkt.getDestinationAddress());
         if (dIP == null || hostTracker == null) {
             log.debug("Invalid param(s) in handlePuntedIPPacket.. DestIP: {}. hostTracker: {}", dIP, hostTracker);
@@ -1026,7 +1134,12 @@ public class SimpleForwardingImpl implements IfNewHostNotify,
                 rp.setOutgoingNodeConnector(nc);
                 this.dataPacketService.transmitDataPacket(rp);
             }
-
+        } else if (allowAddPending) {
+            // If we made it here, let's hang on to the punted packet, with hopes that its destination
+            // will become available soon.
+            addToPendingPackets(dIP, pkt, incomingNodeConnector);
+        } else {
+            log.warn("Dropping punted IP packet received at {} to Host {}", incomingNodeConnector, dIP);
         }
     }
 }
index 566c43b8c8a63263c1663a512fc2a2d35c554fca..2cc8e912c1fb2f59d2e66d1c3a349241a047b5ff 100644 (file)
@@ -3,7 +3,8 @@ webconsole.product.name = OpenDaylight Controller
 webconsole.product.url = http://www.opendaylight.org/
 webconsole.product.image = /res/imgs/odl/logo.png
 webconsole.favicon = /res/imgs/odl/favicon.ico
-
+#To disable web console authentication clear default username
+webconsole.username =
 # webconsole.vendor.name = Linux Foundation
 # webconsole.vendor.url = http://www.linuxfoundation.org/
 # webconsole.vendor.image = /res/imgs/vendor.png
diff --git a/pom.xml b/pom.xml
index 792c66dbda37292887bb54a03208df9e786e1404..3408c0513cb5229de9b4ae036263335a2fceb9b2 100644 (file)
--- a/pom.xml
+++ b/pom.xml
     <module>opendaylight/commons/opendaylight</module>
     <module>opendaylight/commons/parent</module>
     <module>opendaylight/commons/logback_settings</module>
+
+    <!-- Karaf Distribution 
+    <module>feature</module> -->
+    <module>opendaylight/dummy-console</module>
+    <module>opendaylight/distribution/opendaylight-karaf</module>
   </modules>
   <scm>
     <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
diff --git a/third-party/org.openexi/nagasena-rta/nagasena-rta-0000.0002.0038.0.jar b/third-party/org.openexi/nagasena-rta/nagasena-rta-0000.0002.0038.0.jar
deleted file mode 100644 (file)
index 1b6a027..0000000
Binary files a/third-party/org.openexi/nagasena-rta/nagasena-rta-0000.0002.0038.0.jar and /dev/null differ
diff --git a/third-party/org.openexi/nagasena-rta/pom.xml b/third-party/org.openexi/nagasena-rta/pom.xml
deleted file mode 100644 (file)
index 98da51a..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>org.openexi</artifactId>
-        <version>0000.0002.0038.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.opendaylight.controller.thirdparty</groupId>
-    <artifactId>nagasena-rta</artifactId>
-    <packaging>bundle</packaging>
-
-    <properties>
-        <archive>nagasena-rta-0000.0002.0038.0.jar</archive>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>truezip-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>extract</id>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                        <phase>compile</phase>
-                        <configuration>
-                            <fileset>
-                                <!-- note how the archive is treated as a normal file directory -->
-                                <directory>${archive}</directory>
-                                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
-                                <includes>
-                                    <include>**</include>
-                                </includes>
-                            </fileset>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>   
-            <plugin>   
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                    </instructions>
-                </configuration>
-            </plugin>   
-        </plugins>
-    </build>
-</project>
-
diff --git a/third-party/org.openexi/nagasena/nagasena-0000.0002.0038.0.jar b/third-party/org.openexi/nagasena/nagasena-0000.0002.0038.0.jar
deleted file mode 100644 (file)
index ffc28ea..0000000
Binary files a/third-party/org.openexi/nagasena/nagasena-0000.0002.0038.0.jar and /dev/null differ
diff --git a/third-party/org.openexi/nagasena/pom.xml b/third-party/org.openexi/nagasena/pom.xml
deleted file mode 100644 (file)
index a890431..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.opendaylight.controller.thirdparty</groupId>
-        <artifactId>org.openexi</artifactId>
-        <version>0000.0002.0038.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.opendaylight.controller.thirdparty</groupId>
-    <artifactId>nagasena</artifactId>
-    <packaging>bundle</packaging>
-
-    <properties>
-        <archive>nagasena-0000.0002.0038.0.jar</archive>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>truezip-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>extract</id>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                        <phase>compile</phase>
-                        <configuration>
-                            <fileset>
-                                <!-- note how the archive is treated as a normal file directory -->
-                                <directory>${archive}</directory>
-                                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
-                                <includes>
-                                    <include>**</include>
-                                </includes>
-                            </fileset>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>   
-            <plugin>   
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                    </instructions>
-                </configuration>
-            </plugin>   
-        </plugins>
-    </build>
-</project>
-
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-frame.html
deleted file mode 100644 (file)
index 11f9ed5..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-All Classes\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameHeadingFont">\r
-<B>All Classes</B></FONT>\r
-<BR>\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common" target="classFrame">AlignmentType</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax" target="classFrame"><I>BinaryDataHandler</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io" target="classFrame"><I>BinaryDataSink</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common" target="classFrame">BinaryDataSource</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io" target="classFrame">CharacterBuffer</A>\r
-<BR>\r
-<A HREF="org/openexi/schema/Characters.html" title="class in org.openexi.schema" target="classFrame">Characters</A>\r
-<BR>\r
-<A HREF="org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema" target="classFrame">EmptySchema</A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp" target="classFrame"><I>EntityResolverEx</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common" target="classFrame"><I>EventDescription</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common" target="classFrame">EventType</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc" target="classFrame">EXIDecoder</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common" target="classFrame">EXIOptions</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/EXIReader.html" title="class in org.openexi.sax" target="classFrame">EXIReader</A>\r
-<BR>\r
-<A HREF="org/openexi/schema/EXISchema.html" title="class in org.openexi.schema" target="classFrame">EXISchema</A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaFactory</A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp" target="classFrame"><I>EXISchemaFactoryErrorHandler</I></A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaFactoryException</A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaReader</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc" target="classFrame"><I>EXISchemaResolver</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars" target="classFrame">GrammarCache</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common" target="classFrame">GrammarOptions</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc" target="classFrame">HeaderOptionsOutputType</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common" target="classFrame">QName</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax" target="classFrame">ReaderSupport</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax" target="classFrame"><I>SAXTransmogrifier</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io" target="classFrame">Scanner</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax" target="classFrame">Transmogrifier</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax" target="classFrame">TransmogrifierException</A>\r
-<BR>\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-noframe.html b/third-party/org.openexi/nagasena/src/main/resources/doc/allclasses-noframe.html
deleted file mode 100644 (file)
index 8f32ae6..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:59 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-All Classes\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameHeadingFont">\r
-<B>All Classes</B></FONT>\r
-<BR>\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><I>BinaryDataHandler</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><I>BinaryDataSink</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A>\r
-<BR>\r
-<A HREF="org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<BR>\r
-<A HREF="org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema">EmptySchema</A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><I>EntityResolverEx</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><I>EventDescription</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<BR>\r
-<A HREF="org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><I>EXISchemaFactoryErrorHandler</I></A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
-<BR>\r
-<A HREF="org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp">EXISchemaReader</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><I>EXISchemaResolver</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>\r
-<BR>\r
-<A HREF="org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><I>SAXTransmogrifier</I></A>\r
-<BR>\r
-<A HREF="org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<BR>\r
-<A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<BR>\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/constant-values.html b/third-party/org.openexi/nagasena/src/main/resources/doc/constant-values.html
deleted file mode 100644 (file)
index 6c4e3d2..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Constant Field Values\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Constant Field Values";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H1>\r
-Constant Field Values</H1>\r
-</CENTER>\r
-<HR SIZE="4" NOSHADE>\r
-<B>Contents</B><UL>\r
-<LI><A HREF="#org.openexi">org.openexi.*</A>\r
-</UL>\r
-\r
-<A NAME="org.openexi"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left"><FONT SIZE="+2">\r
-org.openexi.*</FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left" COLSPAN="3">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_AT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_AT">EVENT_AT</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>3</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_BLOB"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_BLOB">EVENT_BLOB</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>13</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_CH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_CH">EVENT_CH</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>6</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_CM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_CM">EVENT_CM</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>10</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_DTD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_DTD">EVENT_DTD</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>12</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_ED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_ED">EVENT_ED</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>1</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_EE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_EE">EVENT_EE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>7</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_ER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_ER">EVENT_ER</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>11</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_NL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_NL">EVENT_NL</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>5</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_NS">EVENT_NS</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>8</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_PI"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_PI">EVENT_PI</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>9</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_SD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_SD">EVENT_SD</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>0</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_SE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_SE">EVENT_SE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>2</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventDescription.EVENT_TP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventDescription.html#EVENT_TP">EVENT_TP</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>4</CODE></TD>\r
-</TR>\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left" COLSPAN="3">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_AT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_AT">ITEM_AT</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>12</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_AT_WC_ANY_UNTYPED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_AT_WC_ANY_UNTYPED">ITEM_AT_WC_ANY_UNTYPED</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>8</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_CH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_CH">ITEM_CH</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>3</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_CM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_CM">ITEM_CM</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>1</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_DTD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_DTD">ITEM_DTD</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>10</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_ED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_ED">ITEM_ED</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>4</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_EE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_EE">ITEM_EE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>9</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_ER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_ER">ITEM_ER</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>2</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_NS">ITEM_NS</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>7</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_PI"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_PI">ITEM_PI</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>0</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SC">ITEM_SC</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>6</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_AT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT">ITEM_SCHEMA_AT</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>16</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_INVALID_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_INVALID_VALUE">ITEM_SCHEMA_AT_INVALID_VALUE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>23</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_WC_ANY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_ANY">ITEM_SCHEMA_AT_WC_ANY</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>17</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_WC_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_NS">ITEM_SCHEMA_AT_WC_NS</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>18</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_CH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH">ITEM_SCHEMA_CH</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>19</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_CH_MIXED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH_MIXED">ITEM_SCHEMA_CH_MIXED</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>20</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_NIL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_NIL">ITEM_SCHEMA_NIL</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>21</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_TYPE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_TYPE">ITEM_SCHEMA_TYPE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>22</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_WC_ANY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_ANY">ITEM_SCHEMA_WC_ANY</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>14</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SCHEMA_WC_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_NS">ITEM_SCHEMA_WC_NS</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>15</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SD">ITEM_SD</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>13</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SE">ITEM_SE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>11</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.EventType.ITEM_SE_WC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/EventType.html#ITEM_SE_WC">ITEM_SE_WC</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>5</CODE></TD>\r
-</TR>\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left" COLSPAN="3">org.openexi.proc.common.<A HREF="org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.GrammarOptions.DEFAULT_OPTIONS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;short</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/GrammarOptions.html#DEFAULT_OPTIONS">DEFAULT_OPTIONS</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>2</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.GrammarOptions.OPTIONS_UNUSED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;short</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/GrammarOptions.html#OPTIONS_UNUSED">OPTIONS_UNUSED</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>0</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.common.GrammarOptions.STRICT_OPTIONS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;short</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/common/GrammarOptions.html#STRICT_OPTIONS">STRICT_OPTIONS</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>1</CODE></TD>\r
-</TR>\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left" COLSPAN="3">org.openexi.proc.io.<A HREF="org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.proc.io.CharacterBuffer.BUFSIZE_DEFAULT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/proc/io/CharacterBuffer.html#BUFSIZE_DEFAULT">BUFSIZE_DEFAULT</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>4096</CODE></TD>\r
-</TR>\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left" COLSPAN="3">org.openexi.sax.<A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.PREFIX_BOUND_TO_ANOTHER_NAMESPACE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#PREFIX_BOUND_TO_ANOTHER_NAMESPACE">PREFIX_BOUND_TO_ANOTHER_NAMESPACE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>11</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.PREFIX_NOT_BOUND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#PREFIX_NOT_BOUND">PREFIX_NOT_BOUND</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>10</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.SAX_ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#SAX_ERROR">SAX_ERROR</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>6</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.SCRIBER_ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#SCRIBER_ERROR">SCRIBER_ERROR</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>12</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_ATTR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ATTR">UNEXPECTED_ATTR</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>2</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_BINARY_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_BINARY_VALUE">UNEXPECTED_BINARY_VALUE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>4</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_CHARS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_CHARS">UNEXPECTED_CHARS</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>3</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_ED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ED">UNEXPECTED_ED</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>8</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_ELEM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ELEM">UNEXPECTED_ELEM</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>1</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_END_ELEM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_END_ELEM">UNEXPECTED_END_ELEM</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>7</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.UNEXPECTED_SD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNEXPECTED_SD">UNEXPECTED_SD</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>9</CODE></TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.sax.TransmogrifierException.UNHANDLED_SAXPARSER_FEATURE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/sax/TransmogrifierException.html#UNHANDLED_SAXPARSER_FEATURE">UNHANDLED_SAXPARSER_FEATURE</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>5</CODE></TD>\r
-</TR>\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left" COLSPAN="3">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<A NAME="org.openexi.scomp.EXISchemaFactoryException.XMLSCHEMA_ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">\r
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>\r
-<TD ALIGN="left"><CODE><A HREF="org/openexi/scomp/EXISchemaFactoryException.html#XMLSCHEMA_ERROR">XMLSCHEMA_ERROR</A></CODE></TD>\r
-<TD ALIGN="right"><CODE>1002</CODE></TD>\r
-</TR>\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-\r
-<P>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/deprecated-list.html b/third-party/org.openexi/nagasena/src/main/resources/doc/deprecated-list.html
deleted file mode 100644 (file)
index 60ad3ed..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Deprecated List\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Deprecated List";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-<B>Deprecated API</B></H2>\r
-</CENTER>\r
-<HR SIZE="4" NOSHADE>\r
-<B>Contents</B><UL>\r
-</UL>\r
-\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/help-doc.html b/third-party/org.openexi/nagasena/src/main/resources/doc/help-doc.html
deleted file mode 100644 (file)
index 81850ce..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:59 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-API Help\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="API Help";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H1>\r
-How This API Document Is Organized</H1>\r
-</CENTER>\r
-This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>\r
-Overview</H3>\r
-<BLOCKQUOTE>\r
-\r
-<P>\r
-The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>\r
-<H3>\r
-Package</H3>\r
-<BLOCKQUOTE>\r
-\r
-<P>\r
-Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>\r
-<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>\r
-</BLOCKQUOTE>\r
-<H3>\r
-Class/Interface</H3>\r
-<BLOCKQUOTE>\r
-\r
-<P>\r
-Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>\r
-<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description\r
-<P>\r
-<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary\r
-<P>\r
-<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>\r
-Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>\r
-</BLOCKQUOTE>\r
-<H3>\r
-Annotation Type</H3>\r
-<BLOCKQUOTE>\r
-\r
-<P>\r
-Each annotation type has its own separate page with the following sections:<UL>\r
-<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>\r
-</BLOCKQUOTE>\r
-</BLOCKQUOTE>\r
-<H3>\r
-Enum</H3>\r
-<BLOCKQUOTE>\r
-\r
-<P>\r
-Each enum has its own separate page with the following sections:<UL>\r
-<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>\r
-</BLOCKQUOTE>\r
-<H3>\r
-Tree (Class Hierarchy)</H3>\r
-<BLOCKQUOTE>\r
-There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>\r
-<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>\r
-</BLOCKQUOTE>\r
-<H3>\r
-Deprecated API</H3>\r
-<BLOCKQUOTE>\r
-The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>\r
-<H3>\r
-Index</H3>\r
-<BLOCKQUOTE>\r
-The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>\r
-<H3>\r
-Prev/Next</H3>\r
-These links take you to the next or previous class, interface, package, or related page.<H3>\r
-Frames/No Frames</H3>\r
-These links show and hide the HTML frames.  All pages are available with or without frames.\r
-<P>\r
-<H3>\r
-Serialized Form</H3>\r
-Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.\r
-<P>\r
-<H3>\r
-Constant Field Values</H3>\r
-The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.\r
-<P>\r
-<FONT SIZE="-1">\r
-<EM>\r
-This help file applies to API documentation generated using the standard doclet.</EM>\r
-</FONT>\r
-<BR>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/index-all.html b/third-party/org.openexi/nagasena/src/main/resources/doc/index-all.html
deleted file mode 100644 (file)
index 3fc6b29..0000000
+++ /dev/null
@@ -1,970 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Index\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Index";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#___">_</A> <HR>\r
-<A NAME="_A_"><!-- --></A><H2>\r
-<B>A</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#addCM(short)"><B>addCM(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Sets Preserve Comments to <i>true</i>.\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#addDTD(short)"><B>addDTD(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Sets Preserve Document Type Definition to <i>true</i>.\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#addNS(short)"><B>addNS(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Sets Preserve Namespaces to <i>true</i>.\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#addPI(short)"><B>addPI(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Sets Preserve Processing Instructions to <i>true</i>.\r
-<DT><A HREF="./org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>AlignmentType</B></A> - Enum in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>AlignmentType represents one of the following bit alignment 
- styles so as to provide an extra degree of control over the
- way information is stored in EXI format.<DT><A HREF="./org/openexi/schema/EXISchema.html#ancestryIds"><B>ancestryIds</B></A> - \r
-Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
-<DD>&nbsp;\r
-</DL>\r
-<HR>\r
-<A NAME="_B_"><!-- --></A><H2>\r
-<B>B</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/sax/BinaryDataHandler.html#binaryData(byte[], int, int, org.openexi.proc.io.BinaryDataSink)"><B>binaryData(byte[], int, int, BinaryDataSink)</B></A> - \r
-Method in interface org.openexi.sax.<A HREF="./org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>\r
-<DD>Writes a binary value where the schema expects a binary value.\r
-<DT><A HREF="./org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>BinaryDataHandler</B></A> - Interface in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>&nbsp;<DT><A HREF="./org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>BinaryDataSink</B></A> - Interface in <A HREF="./org/openexi/proc/io/package-summary.html">org.openexi.proc.io</A><DD>BinaryDataSink represents a sink that accepts successive chunks of binary data.<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>BinaryDataSource</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>&nbsp;<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#BinaryDataSource()"><B>BinaryDataSource()</B></A> - \r
-Constructor for class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/io/CharacterBuffer.html#BUFSIZE_DEFAULT"><B>BUFSIZE_DEFAULT</B></A> - \r
-Static variable in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A>\r
-<DD>&nbsp;\r
-</DL>\r
-<HR>\r
-<A NAME="_C_"><!-- --></A><H2>\r
-<B>C</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>CharacterBuffer</B></A> - Class in <A HREF="./org/openexi/proc/io/package-summary.html">org.openexi.proc.io</A><DD>&nbsp;<DT><A HREF="./org/openexi/proc/io/CharacterBuffer.html#CharacterBuffer(int)"><B>CharacterBuffer(int)</B></A> - \r
-Constructor for class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>Characters</B></A> - Class in <A HREF="./org/openexi/schema/package-summary.html">org.openexi.schema</A><DD>&nbsp;<DT><A HREF="./org/openexi/schema/Characters.html#Characters(char[], int, int, boolean)"><B>Characters(char[], int, int, boolean)</B></A> - \r
-Constructor for class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/schema/Characters.html#characters"><B>characters</B></A> - \r
-Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/schema/Characters.html#CHARACTERS_EMPTY"><B>CHARACTERS_EMPTY</B></A> - \r
-Static variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/io/Scanner.html#closeInputStream()"><B>closeInputStream()</B></A> - \r
-Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
-<DD>Close the input stream.\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html#compile(org.xml.sax.InputSource)"><B>compile(InputSource)</B></A> - \r
-Method in class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
-<DD>Compile an XML Schema Document into an EXISchema.\r
-</DL>\r
-<HR>\r
-<A NAME="_D_"><!-- --></A><H2>\r
-<B>D</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#DEFAULT_OPTIONS"><B>DEFAULT_OPTIONS</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Indicates that undeclared elements and attributes will be 
- processed when the XML stream is encoded and decoded.\r
-</DL>\r
-<HR>\r
-<A NAME="_E_"><!-- --></A><H2>\r
-<B>E</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>EmptySchema</B></A> - Class in <A HREF="./org/openexi/schema/package-summary.html">org.openexi.schema</A><DD>EmptySchema provides an EXISchema that supports all datatypes inherent
- in XML Schema such as xsd:int and xsd:dateTime, but with no 
- user-specific definitions.<DT><A HREF="./org/openexi/sax/Transmogrifier.html#encode(org.xml.sax.InputSource)"><B>encode(InputSource)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Parses XML input source and converts it to an EXI stream.\r
-<DT><A HREF="./org/openexi/sax/BinaryDataHandler.html#endBinaryData(org.openexi.proc.io.BinaryDataSink)"><B>endBinaryData(BinaryDataSink)</B></A> - \r
-Method in interface org.openexi.sax.<A HREF="./org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>\r
-<DD>Mark the end of a binary value.\r
-<DT><A HREF="./org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>EntityResolverEx</B></A> - Interface in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>Extended SAX EntityResolver interface for resolving entities and
- schema documents.<DT><A HREF="./org/openexi/proc/common/QName.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/schema/Characters.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html#error(org.openexi.scomp.EXISchemaFactoryException)"><B>error(EXISchemaFactoryException)</B></A> - \r
-Method in interface org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>\r
-<DD>Report an error found during schema processing.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_AT"><B>EVENT_AT</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Attribute event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_BLOB"><B>EVENT_BLOB</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>BLOB event (content of an element).\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_CH"><B>EVENT_CH</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Character event (content of an element).\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_CM"><B>EVENT_CM</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Comment event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_DTD"><B>EVENT_DTD</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Document Type Definition event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_ED"><B>EVENT_ED</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>End Document event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_EE"><B>EVENT_EE</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>End Element event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_ER"><B>EVENT_ER</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Entity Reference event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_NL"><B>EVENT_NL</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Attribute <i>xsi:nil</i>.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_NS"><B>EVENT_NS</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Namespace declaration event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_PI"><B>EVENT_PI</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Processing Instruction event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_SD"><B>EVENT_SD</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Start Document event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_SE"><B>EVENT_SE</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Start Element event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#EVENT_TP"><B>EVENT_TP</B></A> - \r
-Static variable in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Attribute <i>xsi:type</i>.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>EventDescription</B></A> - Interface in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>EventDescription provides accessors to the current EXI event data
- during the decode process.<DT><A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>EventType</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>EventType denotes terminal symbols of grammar productions  
- defined in the EXI 1.0 specification.<DT><A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>EXIDecoder</B></A> - Class in <A HREF="./org/openexi/proc/package-summary.html">org.openexi.proc</A><DD>EXIDecoder provides methods to configure and 
- instantiate a <A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> object
- you can use to parse the contents of an EXI stream.<DT><A HREF="./org/openexi/proc/EXIDecoder.html#EXIDecoder()"><B>EXIDecoder()</B></A> - \r
-Constructor for class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Creates an instance of EXIDecoder with the default inflator 
- buffer size of 8192 bytes.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#EXIDecoder(int, boolean)"><B>EXIDecoder(int, boolean)</B></A> - \r
-Constructor for class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Creates an instance of EXIDecoder with the specified inflator buffer 
- size.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>EXIOptions</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>EXIOptions provides accessors for values associated with
- EXI options in the EXI header of an EXI stream.<DT><A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>EXIReader</B></A> - Class in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>EXIReader implements the SAX XMLReader to provide a convenient and 
- familiar interface for decoding an EXI stream.<DT><A HREF="./org/openexi/sax/EXIReader.html#EXIReader()"><B>EXIReader()</B></A> - \r
-Constructor for class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>EXISchema</B></A> - Class in <A HREF="./org/openexi/schema/package-summary.html">org.openexi.schema</A><DD>EXISchema provides methods to read and write compiled EXI schemas.<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>EXISchemaFactory</B></A> - Class in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>EXISchemaFactory compiles XML Schema into an EXISchema instance.<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html#EXISchemaFactory()"><B>EXISchemaFactory()</B></A> - \r
-Constructor for class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>EXISchemaFactoryErrorHandler</B></A> - Interface in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>This interface reports exceptions from EXISchemaFactory during schema 
- processing.<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>EXISchemaFactoryException</B></A> - Exception in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>Any errors encountered during schema compilation are communicated to
- an application as EXISchemaFactoryException objects.<DT><A HREF="./org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>EXISchemaReader</B></A> - Class in <A HREF="./org/openexi/scomp/package-summary.html">org.openexi.scomp</A><DD>EXISchemaReader parses EXI-encoded EXI Grammar into an EXISchema.<DT><A HREF="./org/openexi/scomp/EXISchemaReader.html#EXISchemaReader()"><B>EXISchemaReader()</B></A> - \r
-Constructor for class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp">EXISchemaReader</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>EXISchemaResolver</B></A> - Interface in <A HREF="./org/openexi/proc/package-summary.html">org.openexi.proc</A><DD>Developers have the option of implementing the EXISchemaResolver interface
- to help EXIReader and EXIDecoder locate the correct grammar cache for parsing 
- an EXI stream.</DL>\r
-<HR>\r
-<A NAME="_F_"><!-- --></A><H2>\r
-<B>F</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html#fatalError(org.openexi.scomp.EXISchemaFactoryException)"><B>fatalError(EXISchemaFactoryException)</B></A> - \r
-Method in interface org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>\r
-<DD>Report a fatal error found during schema processing.\r
-</DL>\r
-<HR>\r
-<A NAME="_G_"><!-- --></A><H2>\r
-<B>G</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getAlignmentType()"><B>getAlignmentType()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Get the bit alignment setting.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getBinaryDataSource()"><B>getBinaryDataSource()</B></A> - \r
-Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Gets the value of an EVENT_BLOB.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getBlockSize()"><B>getBlockSize()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns the number of element and attribute values that are read and processed
- as a group.\r
-<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#getByteArray()"><B>getByteArray()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getCharacters()"><B>getCharacters()</B></A> - \r
-Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Gets the value of an EVENT_CH, 
- Attribute (EVENT_AT, EVENT_NL, EVENT_TP), EVENT_CM,
- EVENT_DTD or EVENT_PI event.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#getCode()"><B>getCode()</B></A> - \r
-Method in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Returns a code that represents the type of the exception.\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#getCode()"><B>getCode()</B></A> - \r
-Method in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
-<DD>Returns a code that represents the type of the exception.\r
-<DT><A HREF="./org/openexi/sax/ReaderSupport.html#getContentHandler()"><B>getContentHandler()</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A>\r
-<DD>Get the SAX content handler currently in use.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getDatatypeRepresentationMap()"><B>getDatatypeRepresentationMap()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns an array of qualified names that map XMLSchema datatypes to 
- non-standard equivalents in EXI.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getDatatypeRepresentationMapBindingsCount()"><B>getDatatypeRepresentationMapBindingsCount()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns the number of Datatype Representation Map QName pairs.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getEventKind()"><B>getEventKind()</B></A> - \r
-Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Gets the event kind of which instance data this EventDescription is describing.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getEventType()"><B>getEventType()</B></A> - \r
-Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Returns the EventType from which this event is derived.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#getException()"><B>getException()</B></A> - \r
-Method in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Returns an Exception object.\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#getException()"><B>getException()</B></A> - \r
-Method in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
-<DD>Returns an Exception object.\r
-<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#getEXISchema()"><B>getEXISchema()</B></A> - \r
-Method in class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
-<DD>Gets the compiled EXI Schema.\r
-<DT><A HREF="./org/openexi/schema/EmptySchema.html#getEXISchema()"><B>getEXISchema()</B></A> - \r
-Static method in class org.openexi.schema.<A HREF="./org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema">EmptySchema</A>\r
-<DD>Returns an EXISchema that supports all datatypes inherent in XML Schema.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#getFeature(java.lang.String)"><B>getFeature(String)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Get features for the SAX parser.\r
-<DT><A HREF="./org/openexi/sax/SAXTransmogrifier.html#getGrammarCache()"><B>getGrammarCache()</B></A> - \r
-Method in interface org.openexi.sax.<A HREF="./org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A>\r
-<DD>Returns the GrammarCache that is in use by this SAXTransmogrifier.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#getGrammarCache()"><B>getGrammarCache()</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Returns the GrammarCache that was previously set.\r
-<DT><A HREF="./org/openexi/proc/io/Scanner.html#getHeaderOptions()"><B>getHeaderOptions()</B></A> - \r
-Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
-<DD>Returns the EXI Header options from the header of the
- EXI stream, if present.\r
-<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#getLength()"><B>getLength()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#getLocator()"><B>getLocator()</B></A> - \r
-Method in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Returns the locator that is associated with this compilation error.\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#getLocator()"><B>getLocator()</B></A> - \r
-Method in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
-<DD>Returns the locator that is associated with this compilation error.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#getMessage()"><B>getMessage()</B></A> - \r
-Method in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Returns a message that describes the exception.\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#getMessage()"><B>getMessage()</B></A> - \r
-Method in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
-<DD>Returns a message that describes the exception.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getName()"><B>getName()</B></A> - \r
-Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Gets the name of the EXI event.\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getPrefix()"><B>getPrefix()</B></A> - \r
-Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Gets the namespace prefix of the event.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreserveComments()"><B>getPreserveComments()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns whether comments are conserved in the EXI Stream.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreserveDTD()"><B>getPreserveDTD()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns whether the document type definition is conserved in the EXI Stream.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreserveLexicalValues()"><B>getPreserveLexicalValues()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns whether lexical values (literal strings) are preserved rather 
- than the logical values of elements and attributes.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreserveNS()"><B>getPreserveNS()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns whether the namespaces are preserved in the EXI stream.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getPreservePIs()"><B>getPreservePIs()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns whether processing instructions are conserved in the EXI Stream.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Use to retrieve the name of the lexical handler, currently the only
- property recognized by this class.\r
-<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#getRemainingBytesCount()"><B>getRemainingBytesCount()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#getSAXTransmogrifier()"><B>getSAXTransmogrifier()</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Returns the SAXTransmogrifier, which implements both the ContentHandler
- and LexicalHandler.\r
-<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#getStartIndex()"><B>getStartIndex()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/EventDescription.html#getURI()"><B>getURI()</B></A> - \r
-Method in interface org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>\r
-<DD>Gets the URI of the EXI event.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getValueMaxLength()"><B>getValueMaxLength()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns the maximum length in characters of strings that will be included
- in the String Table.\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#getValuePartitionCapacity()"><B>getValuePartitionCapacity()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>Returns the maximum number of entries in the String Table.\r
-<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><B>GrammarCache</B></A> - Class in <A HREF="./org/openexi/proc/grammars/package-summary.html">org.openexi.proc.grammars</A><DD>A GrammarCache object represents a set of EXI grammars used 
- for processing EXI streams using specific grammar options.<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#GrammarCache(org.openexi.schema.EXISchema)"><B>GrammarCache(EXISchema)</B></A> - \r
-Constructor for class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
-<DD>Creates an instance of GrammarCache informed by a schema with default 
- grammar options.\r
-<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#GrammarCache(short)"><B>GrammarCache(short)</B></A> - \r
-Constructor for class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
-<DD>Creates an instance of GrammarCache with the specified grammar options.\r
-<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#GrammarCache(org.openexi.schema.EXISchema, short)"><B>GrammarCache(EXISchema, short)</B></A> - \r
-Constructor for class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
-<DD>Creates an instance of GrammarCache informed by a schema with the
- specified grammar options.\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>GrammarOptions</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>GrammarOptions computes a short integer that represents settings in the EXI Grammar settings
- that determine how an EXI file will be encoded or decoded.<DT><A HREF="./org/openexi/proc/grammars/GrammarCache.html#grammarOptions"><B>grammarOptions</B></A> - \r
-Variable in class org.openexi.proc.grammars.<A HREF="./org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>\r
-<DD>Short integer that encapsulates <A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><CODE>GrammarOptions</CODE></A>
- for the EXI stream.\r
-</DL>\r
-<HR>\r
-<A NAME="_H_"><!-- --></A><H2>\r
-<B>H</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#hasCM(short)"><B>hasCM(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Returns <i>true</i> if Preserve Comments is true.\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#hasDTD(short)"><B>hasDTD(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Returns <i>true</i> if Preserve Document Type Definition is true.\r
-<DT><A HREF="./org/openexi/schema/Characters.html#hashCode()"><B>hashCode()</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#hasNext()"><B>hasNext()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#hasNS(short)"><B>hasNS(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Returns <i>true</i> if Preserve Namespaces is true.\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#hasPI(short)"><B>hasPI(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Returns <i>true</i> if Preserve Processing Instructions is true.\r
-<DT><A HREF="./org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>HeaderOptionsOutputType</B></A> - Enum in <A HREF="./org/openexi/proc/package-summary.html">org.openexi.proc</A><DD>This enumeration provides three possible settings for header options output.</DL>\r
-<HR>\r
-<A NAME="_I_"><!-- --></A><H2>\r
-<B>I</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/schema/Characters.html#indexOf(char)"><B>indexOf(char)</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#isFragment()"><B>isFragment()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>An XML fragment is a non-compliant XML document with multiple root
- elements.\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#isPermitDeviation(short)"><B>isPermitDeviation(short)</B></A> - \r
-Static method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Returns <i>true</i> if DEFAULT_OPTIONS is set to true.\r
-<DT><A HREF="./org/openexi/schema/EXISchema.html#isSimpleType(int)"><B>isSimpleType(int)</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/EXIOptions.html#isStrict()"><B>isStrict()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A>\r
-<DD>The Strict option applies to streams that have an associated XML Schema
- and the data in the XML stream is 100% compliant with the schema.\r
-<DT><A HREF="./org/openexi/schema/Characters.html#isVolatile"><B>isVolatile</B></A> - \r
-Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_AT"><B>ITEM_AT</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for an Attribute learned by built-in element grammars 
- from prior attribute occurrences.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_AT_WC_ANY_UNTYPED"><B>ITEM_AT_WC_ANY_UNTYPED</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Wildcard event type for an Attribute where the attribute's defined 
-  datatype (if any) is disregarded.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_CH"><B>ITEM_CH</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for a Character event (character events store values as strings).\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_CM"><B>ITEM_CM</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for a Comment.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_DTD"><B>ITEM_DTD</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for a Document Type Definition.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_ED"><B>ITEM_ED</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for End of Document.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_EE"><B>ITEM_EE</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for End of Element.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_ER"><B>ITEM_ER</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for an Entity Reference.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_NS"><B>ITEM_NS</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for a Namespace declaration.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_PI"><B>ITEM_PI</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for a Processing Instruction.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SC"><B>ITEM_SC</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Self-contained items are not supported in this release of OpenEXI.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT"><B>ITEM_SCHEMA_AT</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for AttributeUse that matches an attribute event with
- a valid value.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_INVALID_VALUE"><B>ITEM_SCHEMA_AT_INVALID_VALUE</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for AttributeUse that matches an attribute event with an 
- invalid value.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_ANY"><B>ITEM_SCHEMA_AT_WC_ANY</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Attribute wildcard event type stemming from a schema, where the attribute's 
- defined datatype (if any) is applied.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_NS"><B>ITEM_SCHEMA_AT_WC_NS</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Attribute wildcard event type, qualified with a specific namespace, stemming
- from a schema where the attribute's defined datatype (if any) is applied.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH"><B>ITEM_SCHEMA_CH</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for a defined Character event in an EXI stream processed
- using a schema.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH_MIXED"><B>ITEM_SCHEMA_CH_MIXED</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for a Character event that occurs in the context of an element 
- defined so as to permit mixed content (mark up and data) in an EXI 
- stream processed using a schema.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_NIL"><B>ITEM_SCHEMA_NIL</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Special Attribute that indicates the value of the associated element is
- explicitly <i>nil</i> rather than an empty string.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_TYPE"><B>ITEM_SCHEMA_TYPE</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Special Attribute that describes a data type for the associated
- element.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_ANY"><B>ITEM_SCHEMA_WC_ANY</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Attribute wildcard event type stemming from a schema where the 
- attribute's defined datatype (if any) is applied.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_NS"><B>ITEM_SCHEMA_WC_NS</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for an element defined in a namespace in an EXI stream
- processed using a schema.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SD"><B>ITEM_SD</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for Start Document.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SE"><B>ITEM_SE</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Event type for Start Element.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#ITEM_SE_WC"><B>ITEM_SE_WC</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Wildcard event type for an element.\r
-</DL>\r
-<HR>\r
-<A NAME="_L_"><!-- --></A><H2>\r
-<B>L</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/schema/Characters.html#length"><B>length</B></A> - \r
-Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/QName.html#localName"><B>localName</B></A> - \r
-Variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
-<DD>Local name of the datatype.\r
-</DL>\r
-<HR>\r
-<A NAME="_M_"><!-- --></A><H2>\r
-<B>M</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/schema/Characters.html#makeString()"><B>makeString()</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-</DL>\r
-<HR>\r
-<A NAME="_N_"><!-- --></A><H2>\r
-<B>N</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#name"><B>name</B></A> - \r
-Variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>Local name of event type definition.\r
-<DT><A HREF="./org/openexi/proc/common/QName.html#namespaceName"><B>namespaceName</B></A> - \r
-Variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
-<DD>If  namespaceName is <i>null</i>, this indicates a failure of
- namespace-prefix binding.\r
-<DT><A HREF="./org/openexi/proc/common/BinaryDataSource.html#next()"><B>next()</B></A> - \r
-Method in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/io/Scanner.html#nextEvent()"><B>nextEvent()</B></A> - \r
-Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
-<DD>Gets the next event from the EXI stream.\r
-</DL>\r
-<HR>\r
-<A NAME="_O_"><!-- --></A><H2>\r
-<B>O</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#OPTIONS_UNUSED"><B>OPTIONS_UNUSED</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>OPTIONS_UNUSED is an internal value.\r
-<DT><A HREF="./org/openexi/proc/package-summary.html"><B>org.openexi.proc</B></A> - package org.openexi.proc<DD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The Proc (Processor) package contains the EXIDecoder, which is used to convert EXI streams to XML format.<DT><A HREF="./org/openexi/proc/common/package-summary.html"><B>org.openexi.proc.common</B></A> - package org.openexi.proc.common<DD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The common package contains classes, interfaces, and enumerators that define the vocabulary used to describe EXI streams (events, options, alignment, and character string values).<DT><A HREF="./org/openexi/proc/grammars/package-summary.html"><B>org.openexi.proc.grammars</B></A> - package org.openexi.proc.grammars<DD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The grammars package contains the GrammarCache, which combines an XML Schema Definition with EXI grammar options to create an EXI Schema.<DT><A HREF="./org/openexi/proc/io/package-summary.html"><B>org.openexi.proc.io</B></A> - package org.openexi.proc.io<DD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The IO package contains the Scanner, which is used by <code>EXIDecoder</code> to read and interpret EXI streams.<DT><A HREF="./org/openexi/sax/package-summary.html"><B>org.openexi.sax</B></A> - package org.openexi.sax<DD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The SAX package contains the <code>Transmogrifier</code>, which encodes an XML file to an EXI stream, and the <code>EXIReader</code>, which restores an EXI stream to its logical XML equivalent.<DT><A HREF="./org/openexi/schema/package-summary.html"><B>org.openexi.schema</B></A> - package org.openexi.schema<DD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The schema package contains classes that are used to represent XML Schema Documents (XSDs).<DT><A HREF="./org/openexi/scomp/package-summary.html"><B>org.openexi.scomp</B></A> - package org.openexi.scomp<DD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The <code>scomp</code> (schema compiler) package contains the EXISchemaFactory, which is used to compile XML Schema Documents (XSDs) to EXISchemas.</DL>\r
-<HR>\r
-<A NAME="_P_"><!-- --></A><H2>\r
-<B>P</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaReader.html#parse(java.io.InputStream)"><B>parse(InputStream)</B></A> - \r
-Method in class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp">EXISchemaReader</A>\r
-<DD>Parses EXI-encoded EXI Grammar into an EXISchema.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#PREFIX_BOUND_TO_ANOTHER_NAMESPACE"><B>PREFIX_BOUND_TO_ANOTHER_NAMESPACE</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Prefix is bound to another namespace.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#PREFIX_NOT_BOUND"><B>PREFIX_NOT_BOUND</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Prefix is not bound.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#processHeader()"><B>processHeader()</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>This method reads and configures any header options present
- in the EXI stream, then returns a <A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> 
- object you can use to parse the values from the EXI stream.\r
-</DL>\r
-<HR>\r
-<A NAME="_Q_"><!-- --></A><H2>\r
-<B>Q</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>QName</B></A> - Class in <A HREF="./org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A><DD>QName is a pair comprised of a namespace name and a local name  
- to be used in a Datatype Representation Map (DTRM) definition
- to denote an XSD datatype or an EXI datatype representation.<DT><A HREF="./org/openexi/proc/common/QName.html#QName()"><B>QName()</B></A> - \r
-Constructor for class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/QName.html#QName(java.lang.String, java.lang.String)"><B>QName(String, String)</B></A> - \r
-Constructor for class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>\r
-<DD>Creates a QName based on its literal qualified name 
- (see http://www.w3.org/TR/xml-names/#ns-qualnames 
- for definition) and namespace name.\r
-</DL>\r
-<HR>\r
-<A NAME="_R_"><!-- --></A><H2>\r
-<B>R</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>ReaderSupport</B></A> - Class in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>&nbsp;<DT><A HREF="./org/openexi/schema/EXISchema.html#readIn(java.io.DataInputStream)"><B>readIn(DataInputStream)</B></A> - \r
-Static method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
-<DD>Reads an EXI Schema from a DataInputStream.\r
-<DT><A HREF="./org/openexi/scomp/EntityResolverEx.html#resolveEntity(java.lang.String, java.lang.String, java.lang.String)"><B>resolveEntity(String, String, String)</B></A> - \r
-Method in interface org.openexi.scomp.<A HREF="./org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp">EntityResolverEx</A>\r
-<DD>This method will be called for resolving schema documents upon
- occurrences of XML Schema directives such as "include", "import" and
- "redefine" within schemas.\r
-<DT><A HREF="./org/openexi/proc/EXISchemaResolver.html#resolveSchema(java.lang.String, short)"><B>resolveSchema(String, short)</B></A> - \r
-Method in interface org.openexi.proc.<A HREF="./org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc">EXISchemaResolver</A>\r
-<DD>Return a GrammarCache based on a schemaId and grammar options discovered 
- in the header options of an EXI stream.\r
-</DL>\r
-<HR>\r
-<A NAME="_S_"><!-- --></A><H2>\r
-<B>S</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#SAX_ERROR"><B>SAX_ERROR</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>SAX error reported by XML parser.\r
-<DT><A HREF="./org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> - Interface in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>Applications can directly feed SAX events into a transmogrifier through SAXTransmogrifier.<DT><A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>Scanner</B></A> - Class in <A HREF="./org/openexi/proc/io/package-summary.html">org.openexi.proc.io</A><DD>The Scanner class provides methods for scanning events 
- in the body of an EXI stream.<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#SCRIBER_ERROR"><B>SCRIBER_ERROR</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Errors reported by Scriber.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setAlignmentType(org.openexi.proc.common.AlignmentType)"><B>setAlignmentType(AlignmentType)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set the bit alignment style of the stream to be decoded.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setAlignmentType(org.openexi.proc.common.AlignmentType)"><B>setAlignmentType(AlignmentType)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set the bit alignment style used to compile the EXI input stream.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setAlignmentType(org.openexi.proc.common.AlignmentType)"><B>setAlignmentType(AlignmentType)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set the bit alignment style for the encoded EXI stream.\r
-<DT><A HREF="./org/openexi/proc/io/Scanner.html#setBinaryChunkSize(int)"><B>setBinaryChunkSize(int)</B></A> - \r
-Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
-<DD>Binary values are read in chunks of the specified size when the
- use of binary data is enabled.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setBlockSize(int)"><B>setBlockSize(int)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire EXI stream.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setBlockSize(int)"><B>setBlockSize(int)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire EXI stream.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setBlockSize(int)"><B>setBlockSize(int)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire XML stream.\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html#setCompilerErrorHandler(org.openexi.scomp.EXISchemaFactoryErrorHandler)"><B>setCompilerErrorHandler(EXISchemaFactoryErrorHandler)</B></A> - \r
-Method in class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
-<DD>Set an error handler to report any errors encountered during
- schema compilation.\r
-<DT><A HREF="./org/openexi/sax/ReaderSupport.html#setContentHandler(org.xml.sax.ContentHandler)"><B>setContentHandler(ContentHandler)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A>\r
-<DD>Set a SAX content handler to receive SAX events.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><B>setDatatypeRepresentationMap(QName[], int)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set a datatype representation map (DTRM).\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><B>setDatatypeRepresentationMap(QName[], int)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set a datatype representation map.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><B>setDatatypeRepresentationMap(QName[], int)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set a datatype representation map (DTRM).\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setEnableBinaryData(boolean)"><B>setEnableBinaryData(boolean)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Each binary value will be returned as in a EventDescription of EVENT_BLOB 
- instead of EVENT_CH when enabled.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setEntityResolver(org.xml.sax.EntityResolver)"><B>setEntityResolver(EntityResolver)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set an external SAX entity resolver.\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactory.html#setEntityResolver(org.openexi.scomp.EntityResolverEx)"><B>setEntityResolver(EntityResolverEx)</B></A> - \r
-Method in class org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A>\r
-<DD>Set an entity resolver for use to resolve entities and schema documents.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setEXISchemaResolver(org.openexi.proc.EXISchemaResolver)"><B>setEXISchemaResolver(EXISchemaResolver)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set the EXISchemaResolver to retrieve the schema needed to decode the 
- current EXI stream.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setFeature(java.lang.String, boolean)"><B>setFeature(String, boolean)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set features for the SAX parser.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setFragment(boolean)"><B>setFragment(boolean)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set whether the document is a fragment.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setFragment(boolean)"><B>setFragment(boolean)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set to true if the EXI input stream is an XML fragment (a non-compliant
- XML document with multiple root elements).\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setFragment(boolean)"><B>setFragment(boolean)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set to true if the XML input stream is an XML fragment (a non-compliant
- XML document with multiple root elements).\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><B>setGrammarCache(GrammarCache)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set the GrammarCache used in decoding EXI streams.\r
-<DT><A HREF="./org/openexi/sax/ReaderSupport.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><B>setGrammarCache(GrammarCache)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A>\r
-<DD>Set the GrammarCache used in parsing EXI streams.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><B>setGrammarCache(GrammarCache)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set the GrammarCache used in transmogrifying XML data to EXI.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache, org.openexi.proc.common.SchemaId)"><B>setGrammarCache(GrammarCache, SchemaId)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set the GrammarCache to be used in encoding XML streams into EXI streams 
- by the transmogrifier.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setInitialBinaryDataBufferSize(int)"><B>setInitialBinaryDataBufferSize(int)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setInputStream(java.io.InputStream)"><B>setInputStream(InputStream)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set an input stream from which the encoded stream is read.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setLexicalHandler(org.xml.sax.ext.LexicalHandler)"><B>setLexicalHandler(LexicalHandler)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set a SAX lexical handler to receive SAX lexical events.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setOutputCookie(boolean)"><B>setOutputCookie(boolean)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Tells the encoder whether to or not to start the stream by
- adding an EXI cookie.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setOutputOptions(org.openexi.proc.HeaderOptionsOutputType)"><B>setOutputOptions(HeaderOptionsOutputType)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set the header output options.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setOutputStream(java.io.OutputStream)"><B>setOutputStream(OutputStream)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set an output stream to which encoded streams are written.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setPreserveLexicalValues(boolean)"><B>setPreserveLexicalValues(boolean)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set to <i>true</i> to preserve the original string values from the EXI
- stream.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setPreserveLexicalValues(boolean)"><B>setPreserveLexicalValues(boolean)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set to true if the EXI input stream was compiled with the Preserve Lexical
- Values set to true.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setPreserveLexicalValues(boolean)"><B>setPreserveLexicalValues(boolean)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set to <i>true</i> to preserve the original string values from the XML
- stream.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setPreserveWhitespaces(boolean)"><B>setPreserveWhitespaces(boolean)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set to true to preserve whitespace (for example, spaces, tabs, and
- line breaks) in the encoded EXI stream.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>This method wraps the friendlier setLexicalHandler method to provide 
- syntax familiar to experienced SAX programmers.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setResolveExternalGeneralEntities(boolean)"><B>setResolveExternalGeneralEntities(boolean)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Change the way a Transmogrifier handles external general entities.\r
-<DT><A HREF="./org/openexi/proc/io/Scanner.html#setSchema(org.openexi.schema.EXISchema, org.openexi.proc.common.QName[], int)"><B>setSchema(EXISchema, QName[], int)</B></A> - \r
-Method in class org.openexi.proc.io.<A HREF="./org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setValueMaxLength(int)"><B>setValueMaxLength(int)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set the maximum length of a string that will be stored for reuse in the
- String Table.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setValueMaxLength(int)"><B>setValueMaxLength(int)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set the maximum length of a string that will be stored for reuse in the
- String Table.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setValueMaxLength(int)"><B>setValueMaxLength(int)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set the maximum length of a string that will be stored for reuse in the
- String Table.\r
-<DT><A HREF="./org/openexi/proc/EXIDecoder.html#setValuePartitionCapacity(int)"><B>setValuePartitionCapacity(int)</B></A> - \r
-Method in class org.openexi.proc.<A HREF="./org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A>\r
-<DD>Set the maximum number of values in the String Table.\r
-<DT><A HREF="./org/openexi/sax/EXIReader.html#setValuePartitionCapacity(int)"><B>setValuePartitionCapacity(int)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A>\r
-<DD>Set the maximum number of values in the String Table.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#setValuePartitionCapacity(int)"><B>setValuePartitionCapacity(int)</B></A> - \r
-Method in class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Set the maximum number of values in the String Table.\r
-<DT><A HREF="./org/openexi/sax/BinaryDataHandler.html#startBinaryData(long)"><B>startBinaryData(long)</B></A> - \r
-Method in interface org.openexi.sax.<A HREF="./org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>\r
-<DD>Mark the start of a binary value.\r
-<DT><A HREF="./org/openexi/schema/Characters.html#startIndex"><B>startIndex</B></A> - \r
-Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/proc/common/GrammarOptions.html#STRICT_OPTIONS"><B>STRICT_OPTIONS</B></A> - \r
-Static variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A>\r
-<DD>Indicates that undeclared elements and attributes will throw an
- exception when the XML stream is encoded and decoded.\r
-<DT><A HREF="./org/openexi/schema/Characters.html#substring(int, int)"><B>substring(int, int)</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-</DL>\r
-<HR>\r
-<A NAME="_T_"><!-- --></A><H2>\r
-<B>T</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>Transmogrifier</B></A> - Class in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>The Transmogrifier converts an XML stream to an EXI stream.<DT><A HREF="./org/openexi/sax/Transmogrifier.html#Transmogrifier()"><B>Transmogrifier()</B></A> - \r
-Constructor for class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Create an instance of the Transmogrifier with a default SAX parser.\r
-<DT><A HREF="./org/openexi/sax/Transmogrifier.html#Transmogrifier(javax.xml.parsers.SAXParserFactory)"><B>Transmogrifier(SAXParserFactory)</B></A> - \r
-Constructor for class org.openexi.sax.<A HREF="./org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A>\r
-<DD>Create an instance of the Transmogrifier, specifying the SAXParserFactory
- from which to create the SAX parser.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>TransmogrifierException</B></A> - Exception in <A HREF="./org/openexi/sax/package-summary.html">org.openexi.sax</A><DD>Exception handler for the Transmogrifier.<DT><A HREF="./org/openexi/schema/Characters.html#turnPermanent()"><B>turnPermanent()</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-</DL>\r
-<HR>\r
-<A NAME="_U_"><!-- --></A><H2>\r
-<B>U</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/schema/Characters.html#ucsCount"><B>ucsCount</B></A> - \r
-Variable in class org.openexi.schema.<A HREF="./org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A>\r
-<DD>&nbsp;\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ATTR"><B>UNEXPECTED_ATTR</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Unexpected Attribute.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_BINARY_VALUE"><B>UNEXPECTED_BINARY_VALUE</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Unexpected Binary value.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_CHARS"><B>UNEXPECTED_CHARS</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Unexpected Character Sequence.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ED"><B>UNEXPECTED_ED</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Unexpected End of Document event.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ELEM"><B>UNEXPECTED_ELEM</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Unexpected Element.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_END_ELEM"><B>UNEXPECTED_END_ELEM</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Unexpected End of Element event.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNEXPECTED_SD"><B>UNEXPECTED_SD</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Unexpected Start of Document event.\r
-<DT><A HREF="./org/openexi/sax/TransmogrifierException.html#UNHANDLED_SAXPARSER_FEATURE"><B>UNHANDLED_SAXPARSER_FEATURE</B></A> - \r
-Static variable in exception org.openexi.sax.<A HREF="./org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>\r
-<DD>Unhandled SAX parser feature.\r
-<DT><A HREF="./org/openexi/proc/common/EventType.html#uri"><B>uri</B></A> - \r
-Variable in class org.openexi.proc.common.<A HREF="./org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A>\r
-<DD>URI of event type definition.\r
-</DL>\r
-<HR>\r
-<A NAME="_V_"><!-- --></A><H2>\r
-<B>V</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/proc/common/AlignmentType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - \r
-Static method in enum org.openexi.proc.common.<A HREF="./org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>\r
-<DD>Returns the enum constant of this type with the specified name.\r
-<DT><A HREF="./org/openexi/proc/HeaderOptionsOutputType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - \r
-Static method in enum org.openexi.proc.<A HREF="./org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>\r
-<DD>Returns the enum constant of this type with the specified name.\r
-<DT><A HREF="./org/openexi/proc/common/AlignmentType.html#values()"><B>values()</B></A> - \r
-Static method in enum org.openexi.proc.common.<A HREF="./org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>\r
-<DD>Returns an array containing the constants of this enum type, in
-the order they're declared.\r
-<DT><A HREF="./org/openexi/proc/HeaderOptionsOutputType.html#values()"><B>values()</B></A> - \r
-Static method in enum org.openexi.proc.<A HREF="./org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>\r
-<DD>Returns an array containing the constants of this enum type, in
-the order they're declared.\r
-</DL>\r
-<HR>\r
-<A NAME="_W_"><!-- --></A><H2>\r
-<B>W</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html#warning(org.openexi.scomp.EXISchemaFactoryException)"><B>warning(EXISchemaFactoryException)</B></A> - \r
-Method in interface org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>\r
-<DD>Report a warning found during schema processing.\r
-<DT><A HREF="./org/openexi/schema/EXISchema.html#writeOut(java.io.DataOutputStream)"><B>writeOut(DataOutputStream)</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
-<DD>Writes out a serialized EXISchema.\r
-<DT><A HREF="./org/openexi/schema/EXISchema.html#writeXml(java.io.OutputStream, boolean)"><B>writeXml(OutputStream, boolean)</B></A> - \r
-Method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
-<DD>&nbsp;\r
-</DL>\r
-<HR>\r
-<A NAME="_X_"><!-- --></A><H2>\r
-<B>X</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/scomp/EXISchemaFactoryException.html#XMLSCHEMA_ERROR"><B>XMLSCHEMA_ERROR</B></A> - \r
-Static variable in exception org.openexi.scomp.<A HREF="./org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>\r
-<DD>The underlying XMLSchema parser found an error in the schema.\r
-</DL>\r
-<HR>\r
-<A NAME="___"><!-- --></A><H2>\r
-<B>_</B></H2>\r
-<DL>\r
-<DT><A HREF="./org/openexi/schema/EXISchema.html#_isSimpleType(int, int[])"><B>_isSimpleType(int, int[])</B></A> - \r
-Static method in class org.openexi.schema.<A HREF="./org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>\r
-<DD>&nbsp;\r
-</DL>\r
-<HR>\r
-<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#___">_</A> \r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/index.html b/third-party/org.openexi/nagasena/src/main/resources/doc/index.html
deleted file mode 100644 (file)
index f8c172c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc on Thu Apr 10 14:54:59 PDT 2014-->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Generated Documentation (Untitled)\r
-</TITLE>\r
-<SCRIPT type="text/javascript">\r
-    targetPage = "" + window.location.search;\r
-    if (targetPage != "" && targetPage != "undefined")\r
-        targetPage = targetPage.substring(1);\r
-    if (targetPage.indexOf(":") != -1)\r
-        targetPage = "undefined";\r
-    function loadFrames() {\r
-        if (targetPage != "" && targetPage != "undefined")\r
-             top.classFrame.location = top.targetPage;\r
-    }\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-</HEAD>\r
-<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">\r
-<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">\r
-<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">\r
-<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">\r
-</FRAMESET>\r
-<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">\r
-<NOFRAMES>\r
-<H2>\r
-Frame Alert</H2>\r
-\r
-<P>\r
-This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.\r
-<BR>\r
-Link to<A HREF="overview-summary.html">Non-frame version.</A>\r
-</NOFRAMES>\r
-</FRAMESET>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXIDecoder.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXIDecoder.html
deleted file mode 100644 (file)
index 15bd150..0000000
+++ /dev/null
@@ -1,580 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:56 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXIDecoder\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.EXIDecoder class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXIDecoder";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/EXIDecoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXIDecoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc</FONT>\r
-<BR>\r
-Class EXIDecoder</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.EXIDecoder</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public class <B>EXIDecoder</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-EXIDecoder provides methods to configure and 
- instantiate a <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> object
- you can use to parse the contents of an EXI stream.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#EXIDecoder()">EXIDecoder</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of EXIDecoder with the default inflator 
- buffer size of 8192 bytes.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#EXIDecoder(int, boolean)">EXIDecoder</A></B>(int&nbsp;inflatorBufSize,\r
-           boolean&nbsp;useThreadedInflater)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of EXIDecoder with the specified inflator buffer 
- size.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#processHeader()">processHeader</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method reads and configures any header options present
- in the EXI stream, then returns a <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> 
- object you can use to parse the values from the EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setAlignmentType(org.openexi.proc.common.AlignmentType)">setAlignmentType</A></B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the bit alignment style of the stream to be decoded.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setBlockSize(int)">setBlockSize</A></B>(int&nbsp;blockSize)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)">setDatatypeRepresentationMap</A></B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
-                             int&nbsp;n_bindings)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a datatype representation map (DTRM).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setEnableBinaryData(boolean)">setEnableBinaryData</A></B>(boolean&nbsp;enable)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Each binary value will be returned as in a EventDescription of EVENT_BLOB 
- instead of EVENT_CH when enabled.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setFragment(boolean)">setFragment</A></B>(boolean&nbsp;isFragment)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether the document is a fragment.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)">setGrammarCache</A></B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the GrammarCache used in decoding EXI streams.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setInitialBinaryDataBufferSize(int)">setInitialBinaryDataBufferSize</A></B>(int&nbsp;initialSize)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setInputStream(java.io.InputStream)">setInputStream</A></B>(java.io.InputStream&nbsp;istream)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an input stream from which the encoded stream is read.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setPreserveLexicalValues(boolean)">setPreserveLexicalValues</A></B>(boolean&nbsp;preserveLexicalValues)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to <i>true</i> to preserve the original string values from the EXI
- stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setValueMaxLength(int)">setValueMaxLength</A></B>(int&nbsp;valueMaxLength)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum length of a string that will be stored for reuse in the
- String Table.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXIDecoder.html#setValuePartitionCapacity(int)">setValuePartitionCapacity</A></B>(int&nbsp;valuePartitionCapacity)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum number of values in the String Table.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="EXIDecoder()"><!-- --></A><H3>\r
-EXIDecoder</H3>\r
-<PRE>\r
-public <B>EXIDecoder</B>()</PRE>\r
-<DL>\r
-<DD>Creates an instance of EXIDecoder with the default inflator 
- buffer size of 8192 bytes.  Buffer size is only used when
- the EXI stream is encoded with EXI compression.\r
-<P>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EXIDecoder(int, boolean)"><!-- --></A><H3>\r
-EXIDecoder</H3>\r
-<PRE>\r
-public <B>EXIDecoder</B>(int&nbsp;inflatorBufSize,\r
-                  boolean&nbsp;useThreadedInflater)</PRE>\r
-<DL>\r
-<DD>Creates an instance of EXIDecoder with the specified inflator buffer 
- size. When dynamic memory is limited on the target device, reducing 
- the buffer size can improve performance and avoid runtime errors. Buffer 
- size is only used when the EXI stream is encoded with EXI compression.\r
-<P>\r
-<DL>\r
-<DT><B>Parameters:</B><DD><CODE>inflatorBufSize</CODE> - size of the buffer, in bytes.<DD><CODE>useThreadedInflater</CODE> - Inflater will be run in its own thread if true</DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="setInputStream(java.io.InputStream)"><!-- --></A><H3>\r
-setInputStream</H3>\r
-<PRE>\r
-public final void <B>setInputStream</B>(java.io.InputStream&nbsp;istream)</PRE>\r
-<DL>\r
-<DD>Set an input stream from which the encoded stream is read.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>istream</CODE> - InputSream to be read.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setAlignmentType(org.openexi.proc.common.AlignmentType)"><!-- --></A><H3>\r
-setAlignmentType</H3>\r
-<PRE>\r
-public final void <B>setAlignmentType</B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)\r
-                            throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the bit alignment style of the stream to be decoded.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>alignmentType</CODE> - <A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><CODE>AlignmentType</CODE></A> object\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setFragment(boolean)"><!-- --></A><H3>\r
-setFragment</H3>\r
-<PRE>\r
-public final void <B>setFragment</B>(boolean&nbsp;isFragment)</PRE>\r
-<DL>\r
-<DD>Set whether the document is a fragment. Fragments are nonstandard
- XML documents with multiple root elements. Default is false.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>isFragment</CODE> - true if the stream is an XML fragment</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><!-- --></A><H3>\r
-setGrammarCache</H3>\r
-<PRE>\r
-public final void <B>setGrammarCache</B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)\r
-                           throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the GrammarCache used in decoding EXI streams.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>grammarCache</CODE> - <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><CODE>GrammarCache</CODE></A>\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setBlockSize(int)"><!-- --></A><H3>\r
-setBlockSize</H3>\r
-<PRE>\r
-public final void <B>setBlockSize</B>(int&nbsp;blockSize)\r
-                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire EXI stream. Reducing the block size 
- can improve performance for devices with limited dynamic memory. 
- Default is 1,000,000 items (not 1MB, but 1,000,000 complete Attribute 
- and Element values). Block size is only used when the EXI stream is
- encoded with EXI-compression.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>blockSize</CODE> - number of values in each processing block. Default is 1,000,000.\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setValueMaxLength(int)"><!-- --></A><H3>\r
-setValueMaxLength</H3>\r
-<PRE>\r
-public final void <B>setValueMaxLength</B>(int&nbsp;valueMaxLength)</PRE>\r
-<DL>\r
-<DD>Set the maximum length of a string that will be stored for reuse in the
- String Table. By default, there is no maximum length. However, in data
- sets that have long, unique strings of information, you can improve
- performance by limiting the size to the length of strings that are more
- likely to appear more than once.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>valueMaxLength</CODE> - maximum length of entries in the String Table.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setValuePartitionCapacity(int)"><!-- --></A><H3>\r
-setValuePartitionCapacity</H3>\r
-<PRE>\r
-public final void <B>setValuePartitionCapacity</B>(int&nbsp;valuePartitionCapacity)</PRE>\r
-<DL>\r
-<DD>Set the maximum number of values in the String Table. By default, there
- is no limit. If the target device has limited dynamic memory, limiting 
- the number of entries in the String Table can improve performance and
- reduce the likelihood that you will exceed memory capacity.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>valuePartitionCapacity</CODE> - maximum number of entries in the String Table</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setPreserveLexicalValues(boolean)"><!-- --></A><H3>\r
-setPreserveLexicalValues</H3>\r
-<PRE>\r
-public final void <B>setPreserveLexicalValues</B>(boolean&nbsp;preserveLexicalValues)\r
-                                    throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set to <i>true</i> to preserve the original string values from the EXI
- stream. For example, a date string might be converted to a different
- format when interpreted by the EXIDecoder. Preserving the lexical values
- ensures that the identical strings are restored, and not just their 
- logical values.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>preserveLexicalValues</CODE> - true to keep original strings intact\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><!-- --></A><H3>\r
-setDatatypeRepresentationMap</H3>\r
-<PRE>\r
-public final void <B>setDatatypeRepresentationMap</B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
-                                               int&nbsp;n_bindings)\r
-                                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set a datatype representation map (DTRM). The DTRM allows you to remap
- XMLSchema datatypes to EXI datatypes other than their default equivalents.
- The map is created using a sequence of Qualified Name pairs that identify
- a datatype definition in the XMLSchema namespace followed by the new 
- corresponding datatype mapping in the EXI namespace.
- <br /><br />
- For example, the following lines map the boolean datatype from XMLSchema 
- to the integer datatype in EXI.
- <pre>
-   QName q1 = new QName("xsd:boolean","http://www.w3.org/2001/XMLSchema");
-   QName q2 = new QName("exi:integer","http://www.w3.org/2009/exi");
-   QName[] dtrm = new QName[2];
-   dtrm = {q1, q2}; // Each mapping requires 2 qualified names.
-   decoderInstance.setDatatypeRepresentationMap(dtrm, 1); // The array, and the number of pairs (1).
- </pre>\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>dtrm</CODE> - a sequence of pairs of datatype QName and datatype representation QName<DD><CODE>n_bindings</CODE> - the number of QName pairs\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setEnableBinaryData(boolean)"><!-- --></A><H3>\r
-setEnableBinaryData</H3>\r
-<PRE>\r
-public final void <B>setEnableBinaryData</B>(boolean&nbsp;enable)</PRE>\r
-<DL>\r
-<DD>Each binary value will be returned as in a EventDescription of EVENT_BLOB 
- instead of EVENT_CH when enabled.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>enable</CODE> - </DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setInitialBinaryDataBufferSize(int)"><!-- --></A><H3>\r
-setInitialBinaryDataBufferSize</H3>\r
-<PRE>\r
-public final void <B>setInitialBinaryDataBufferSize</B>(int&nbsp;initialSize)</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="processHeader()"><!-- --></A><H3>\r
-processHeader</H3>\r
-<PRE>\r
-public <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A> <B>processHeader</B>()\r
-                      throws java.io.IOException,\r
-                             org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>This method reads and configures any header options present
- in the EXI stream, then returns a <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> 
- object you can use to parse the values from the EXI stream.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>Scanner parsable object with header options applied.\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.io.IOException</CODE>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/EXIDecoder.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXIDecoder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXISchemaResolver.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/EXISchemaResolver.html
deleted file mode 100644 (file)
index 7c90b7d..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:56 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXISchemaResolver\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.EXISchemaResolver interface">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXISchemaResolver";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/EXISchemaResolver.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaResolver.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc</FONT>\r
-<BR>\r
-Interface EXISchemaResolver</H2>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public interface <B>EXISchemaResolver</B></DL>\r
-</PRE>\r
-\r
-<P>\r
-Developers have the option of implementing the EXISchemaResolver interface
- to help EXIReader and EXIDecoder locate the correct grammar cache for parsing 
- an EXI stream.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/EXISchemaResolver.html#resolveSchema(java.lang.String, short)">resolveSchema</A></B>(java.lang.String&nbsp;schemaId,\r
-              short&nbsp;grammarOptions)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a GrammarCache based on a schemaId and grammar options discovered 
- in the header options of an EXI stream.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="resolveSchema(java.lang.String, short)"><!-- --></A><H3>\r
-resolveSchema</H3>\r
-<PRE>\r
-<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A> <B>resolveSchema</B>(java.lang.String&nbsp;schemaId,\r
-                           short&nbsp;grammarOptions)</PRE>\r
-<DL>\r
-<DD>Return a GrammarCache based on a schemaId and grammar options discovered 
- in the header options of an EXI stream.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>schemaId</CODE> - the specific schema used to decode an EXI stream<DD><CODE>grammarOptions</CODE> - the specific grammar options used to decode an EXI stream\r
-<DT><B>Returns:</B><DD>a GrammarCache object</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/EXISchemaResolver.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaResolver.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/HeaderOptionsOutputType.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/HeaderOptionsOutputType.html
deleted file mode 100644 (file)
index db42f8f..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:56 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-HeaderOptionsOutputType\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.HeaderOptionsOutputType class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="HeaderOptionsOutputType";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/HeaderOptionsOutputType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="HeaderOptionsOutputType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc</FONT>\r
-<BR>\r
-Enum HeaderOptionsOutputType</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&gt;\r
-      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.HeaderOptionsOutputType</B>\r
-</PRE>\r
-<DL>\r
-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&gt;</DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public enum <B>HeaderOptionsOutputType</B><DT>extends java.lang.Enum&lt;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&gt;</DL>\r
-</PRE>\r
-\r
-<P>\r
-This enumeration provides three possible settings for header options output.
- <br /><br />
- <ul>
- <li><i>none</i> &ndash; Header options are not included in the header.
- The receiver of the document must have precise knowledge of the 
- settings used to encode the document.<br /><br />
- </li>
- <li>
- <i>lessSchemaId</i> &ndash; Header options are present. Every
- setting used is written out in the header options, except SchemaID.
- The receiver of the document must know which schema is used to 
- encode the document.<br /><br />
- </li>
- <li>
- <i>all</i> &ndash; All header options are present. Every setting
- used is written to the header options, including SchemaID.
- </li>
- </ul>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->\r
-\r
-<A NAME="enum_constant_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Enum Constant Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#all">all</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#lessSchemaId">lessSchemaId</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#none">none</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>[]</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html#values()">values</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
-the order they're declared.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ ENUM CONSTANT DETAIL =========== -->\r
-\r
-<A NAME="enum_constant_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Enum Constant Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="none"><!-- --></A><H3>\r
-none</H3>\r
-<PRE>\r
-public static final <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A> <B>none</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="lessSchemaId"><!-- --></A><H3>\r
-lessSchemaId</H3>\r
-<PRE>\r
-public static final <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A> <B>lessSchemaId</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="all"><!-- --></A><H3>\r
-all</H3>\r
-<PRE>\r
-public static final <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A> <B>all</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="values()"><!-- --></A><H3>\r
-values</H3>\r
-<PRE>\r
-public static final <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>[] <B>values</B>()</PRE>\r
-<DL>\r
-<DD>Returns an array containing the constants of this enum type, in
-the order they're declared.  This method may be used to iterate
-over the constants as follows:
-<pre>
-for(HeaderOptionsOutputType c : HeaderOptionsOutputType.values())
-        System.out.println(c);
-</pre>\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
-the order they're declared</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>\r
-valueOf</H3>\r
-<PRE>\r
-public static <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>\r
-<DL>\r
-<DD>Returns the enum constant of this type with the specified name.
-The string must match <I>exactly</I> an identifier used to declare an
-enum constant in this type.  (Extraneous whitespace characters are 
-not permitted.)\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.\r
-<DT><B>Returns:</B><DD>the enum constant with the specified name\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
-with the specified name</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/HeaderOptionsOutputType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="HeaderOptionsOutputType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/AlignmentType.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/AlignmentType.html
deleted file mode 100644 (file)
index cd6ca90..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-AlignmentType\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common.AlignmentType class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="AlignmentType";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/AlignmentType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="AlignmentType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.common</FONT>\r
-<BR>\r
-Enum AlignmentType</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&gt;\r
-      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.AlignmentType</B>\r
-</PRE>\r
-<DL>\r
-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&gt;</DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public enum <B>AlignmentType</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&gt;</DL>\r
-</PRE>\r
-\r
-<P>\r
-AlignmentType represents one of the following bit alignment 
- styles so as to provide an extra degree of control over the
- way information is stored in EXI format.
- <br/>
- <ul><li><i>bitPacked</i> is the default setting. Data are
- stored in the fewest number of bits in sequential streams
- that cross byte barriers. Conceptually, 8 boolean values
- might be stored in a single byte, for example.</li><br/>
- <li><i>byteAligned</i> stores data using EXI tags with 
- byte barriers intact. Byte-aligned files are useful for
- troubleshooting, because the data are often human-readable
- when the values are literally encoded as strings. It
- is not meant for data transfer, as the file has not been 
- optimized.</li><br/>
- <li><i>preCompress</i> is a byte-aligned format that arranges
- the data into channels. It is intended for use cases where
- file compression is part of the transfer process, so as
- not to perform the compression step twice.</li><br/>
- <li><i>compress</i> is not a bit alignment in and of itself,
- but the Deflate algorithm requires that files be byte-aligned.
- When compression is selected, byte-alignment is used, the
- data are arranged in channels, and the file is compressed
- at the end of processing.</li>
- </ul>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->\r
-\r
-<A NAME="enum_constant_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Enum Constant Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#bitPacked">bitPacked</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#byteAligned">byteAligned</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#compress">compress</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#preCompress">preCompress</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>[]</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html#values()">values</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
-the order they're declared.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ ENUM CONSTANT DETAIL =========== -->\r
-\r
-<A NAME="enum_constant_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Enum Constant Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="bitPacked"><!-- --></A><H3>\r
-bitPacked</H3>\r
-<PRE>\r
-public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>bitPacked</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="byteAligned"><!-- --></A><H3>\r
-byteAligned</H3>\r
-<PRE>\r
-public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>byteAligned</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="preCompress"><!-- --></A><H3>\r
-preCompress</H3>\r
-<PRE>\r
-public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>preCompress</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="compress"><!-- --></A><H3>\r
-compress</H3>\r
-<PRE>\r
-public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>compress</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="values()"><!-- --></A><H3>\r
-values</H3>\r
-<PRE>\r
-public static final <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>[] <B>values</B>()</PRE>\r
-<DL>\r
-<DD>Returns an array containing the constants of this enum type, in
-the order they're declared.  This method may be used to iterate
-over the constants as follows:
-<pre>
-for(AlignmentType c : AlignmentType.values())
-        System.out.println(c);
-</pre>\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
-the order they're declared</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>\r
-valueOf</H3>\r
-<PRE>\r
-public static <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>\r
-<DL>\r
-<DD>Returns the enum constant of this type with the specified name.
-The string must match <I>exactly</I> an identifier used to declare an
-enum constant in this type.  (Extraneous whitespace characters are 
-not permitted.)\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.\r
-<DT><B>Returns:</B><DD>the enum constant with the specified name\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
-with the specified name</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/AlignmentType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="AlignmentType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/BinaryDataSource.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/BinaryDataSource.html
deleted file mode 100644 (file)
index 27a32a0..0000000
+++ /dev/null
@@ -1,349 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-BinaryDataSource\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common.BinaryDataSource class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="BinaryDataSource";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/BinaryDataSource.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="BinaryDataSource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.common</FONT>\r
-<BR>\r
-Class BinaryDataSource</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.BinaryDataSource</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>BinaryDataSource</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#BinaryDataSource()">BinaryDataSource</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;byte[]</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#getByteArray()">getByteArray</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#getLength()">getLength</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;long</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#getRemainingBytesCount()">getRemainingBytesCount</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#getStartIndex()">getStartIndex</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#hasNext()">hasNext</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html#next()">next</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="BinaryDataSource()"><!-- --></A><H3>\r
-BinaryDataSource</H3>\r
-<PRE>\r
-public <B>BinaryDataSource</B>()</PRE>\r
-<DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="getByteArray()"><!-- --></A><H3>\r
-getByteArray</H3>\r
-<PRE>\r
-public final byte[] <B>getByteArray</B>()</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getStartIndex()"><!-- --></A><H3>\r
-getStartIndex</H3>\r
-<PRE>\r
-public final int <B>getStartIndex</B>()</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getLength()"><!-- --></A><H3>\r
-getLength</H3>\r
-<PRE>\r
-public final int <B>getLength</B>()</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getRemainingBytesCount()"><!-- --></A><H3>\r
-getRemainingBytesCount</H3>\r
-<PRE>\r
-public final long <B>getRemainingBytesCount</B>()</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="hasNext()"><!-- --></A><H3>\r
-hasNext</H3>\r
-<PRE>\r
-public boolean <B>hasNext</B>()</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="next()"><!-- --></A><H3>\r
-next</H3>\r
-<PRE>\r
-public int <B>next</B>()\r
-         throws java.io.IOException</PRE>\r
-<DL>\r
-<DD><DL>\r
-\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.io.IOException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/BinaryDataSource.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="BinaryDataSource.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EXIOptions.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EXIOptions.html
deleted file mode 100644 (file)
index 27d78e0..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXIOptions\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common.EXIOptions class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXIOptions";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/EXIOptions.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXIOptions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.common</FONT>\r
-<BR>\r
-Class EXIOptions</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.EXIOptions</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>EXIOptions</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-EXIOptions provides accessors for values associated with
- EXI options in the EXI header of an EXI stream.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getAlignmentType()">getAlignmentType</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the bit alignment setting.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getBlockSize()">getBlockSize</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of element and attribute values that are read and processed
- as a group.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getDatatypeRepresentationMap()">getDatatypeRepresentationMap</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of qualified names that map XMLSchema datatypes to 
- non-standard equivalents in EXI.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getDatatypeRepresentationMapBindingsCount()">getDatatypeRepresentationMapBindingsCount</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of Datatype Representation Map QName pairs.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreserveComments()">getPreserveComments</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether comments are conserved in the EXI Stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreserveDTD()">getPreserveDTD</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether the document type definition is conserved in the EXI Stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreserveLexicalValues()">getPreserveLexicalValues</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether lexical values (literal strings) are preserved rather 
- than the logical values of elements and attributes.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreserveNS()">getPreserveNS</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether the namespaces are preserved in the EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getPreservePIs()">getPreservePIs</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether processing instructions are conserved in the EXI Stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getValueMaxLength()">getValueMaxLength</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the maximum length in characters of strings that will be included
- in the String Table.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#getValuePartitionCapacity()">getValuePartitionCapacity</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the maximum number of entries in the String Table.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#isFragment()">isFragment</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An XML fragment is a non-compliant XML document with multiple root
- elements.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html#isStrict()">isStrict</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Strict option applies to streams that have an associated XML Schema
- and the data in the XML stream is 100% compliant with the schema.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="getAlignmentType()"><!-- --></A><H3>\r
-getAlignmentType</H3>\r
-<PRE>\r
-public <A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A> <B>getAlignmentType</B>()</PRE>\r
-<DL>\r
-<DD>Get the bit alignment setting.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><CODE>AlignmentType</CODE></A></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="isFragment()"><!-- --></A><H3>\r
-isFragment</H3>\r
-<PRE>\r
-public boolean <B>isFragment</B>()</PRE>\r
-<DL>\r
-<DD>An XML fragment is a non-compliant XML document with multiple root
- elements.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><i>true</i> if the stream is an XML fragment.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="isStrict()"><!-- --></A><H3>\r
-isStrict</H3>\r
-<PRE>\r
-public boolean <B>isStrict</B>()</PRE>\r
-<DL>\r
-<DD>The Strict option applies to streams that have an associated XML Schema
- and the data in the XML stream is 100% compliant with the schema.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><i>true</i> if using strict interpretation of an associated XML Schema.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getPreserveComments()"><!-- --></A><H3>\r
-getPreserveComments</H3>\r
-<PRE>\r
-public boolean <B>getPreserveComments</B>()</PRE>\r
-<DL>\r
-<DD>Returns whether comments are conserved in the EXI Stream.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><i>true</i> if comments are preserved.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getPreservePIs()"><!-- --></A><H3>\r
-getPreservePIs</H3>\r
-<PRE>\r
-public boolean <B>getPreservePIs</B>()</PRE>\r
-<DL>\r
-<DD>Returns whether processing instructions are conserved in the EXI Stream.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><i>true</i> if processing instructions are preserved.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getPreserveDTD()"><!-- --></A><H3>\r
-getPreserveDTD</H3>\r
-<PRE>\r
-public boolean <B>getPreserveDTD</B>()</PRE>\r
-<DL>\r
-<DD>Returns whether the document type definition is conserved in the EXI Stream.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><i>true</i> if the document type definition is preserved.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getPreserveNS()"><!-- --></A><H3>\r
-getPreserveNS</H3>\r
-<PRE>\r
-public boolean <B>getPreserveNS</B>()</PRE>\r
-<DL>\r
-<DD>Returns whether the namespaces are preserved in the EXI stream.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><i>true</i> if namespaces are preserved.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getBlockSize()"><!-- --></A><H3>\r
-getBlockSize</H3>\r
-<PRE>\r
-public int <B>getBlockSize</B>()</PRE>\r
-<DL>\r
-<DD>Returns the number of element and attribute values that are read and processed
- as a group.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the current block size. Default is 1,000,000.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getValueMaxLength()"><!-- --></A><H3>\r
-getValueMaxLength</H3>\r
-<PRE>\r
-public int <B>getValueMaxLength</B>()</PRE>\r
-<DL>\r
-<DD>Returns the maximum length in characters of strings that will be included
- in the String Table.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the maximum length of values added to the String Table. Default is unbounded (-1).</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getValuePartitionCapacity()"><!-- --></A><H3>\r
-getValuePartitionCapacity</H3>\r
-<PRE>\r
-public int <B>getValuePartitionCapacity</B>()</PRE>\r
-<DL>\r
-<DD>Returns the maximum number of entries in the String Table.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the maximum number of partitions (entries) in the String Table. Default is unbounded (-1).</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getPreserveLexicalValues()"><!-- --></A><H3>\r
-getPreserveLexicalValues</H3>\r
-<PRE>\r
-public boolean <B>getPreserveLexicalValues</B>()</PRE>\r
-<DL>\r
-<DD>Returns whether lexical values (literal strings) are preserved rather 
- than the logical values of elements and attributes.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><i>true</i> if lexical values are preserved.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getDatatypeRepresentationMapBindingsCount()"><!-- --></A><H3>\r
-getDatatypeRepresentationMapBindingsCount</H3>\r
-<PRE>\r
-public int <B>getDatatypeRepresentationMapBindingsCount</B>()</PRE>\r
-<DL>\r
-<DD>Returns the number of Datatype Representation Map QName pairs.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the number of DTRM bindings.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getDatatypeRepresentationMap()"><!-- --></A><H3>\r
-getDatatypeRepresentationMap</H3>\r
-<PRE>\r
-public <A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[] <B>getDatatypeRepresentationMap</B>()</PRE>\r
-<DL>\r
-<DD>Returns an array of qualified names that map XMLSchema datatypes to 
- non-standard equivalents in EXI.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>an array of qualified names comprising a DTRM.</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/EXIOptions.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXIOptions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventDescription.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventDescription.html
deleted file mode 100644 (file)
index 396802f..0000000
+++ /dev/null
@@ -1,653 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EventDescription\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common.EventDescription interface">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EventDescription";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/EventDescription.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EventDescription.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.common</FONT>\r
-<BR>\r
-Interface EventDescription</H2>\r
-<DL>\r
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A></DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public interface <B>EventDescription</B></DL>\r
-</PRE>\r
-\r
-<P>\r
-<p>EventDescription provides accessors to the current EXI event data
- during the decode process.</p>
- <p>Note that the content of EventDescription is transient, which means
- its content may change when the decoder is asked for access to the
- next EXI event data.</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_AT">EVENT_AT</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_BLOB">EVENT_BLOB</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BLOB event (content of an element).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_CH">EVENT_CH</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Character event (content of an element).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_CM">EVENT_CM</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comment event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_DTD">EVENT_DTD</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document Type Definition event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_ED">EVENT_ED</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Document event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_EE">EVENT_EE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Element event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_ER">EVENT_ER</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entity Reference event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_NL">EVENT_NL</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute <i>xsi:nil</i>.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_NS">EVENT_NS</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Namespace declaration event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_PI">EVENT_PI</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processing Instruction event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_SD">EVENT_SD</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start Document event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_SE">EVENT_SE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start Element event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_TP">EVENT_TP</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute <i>xsi:type</i>.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getBinaryDataSource()">getBinaryDataSource</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of an EVENT_BLOB.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getCharacters()">getCharacters</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the value of an EVENT_CH, 
- Attribute (EVENT_AT, EVENT_NL, EVENT_TP), EVENT_CM,
- EVENT_DTD or EVENT_PI event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getEventKind()">getEventKind</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the event kind of which instance data this EventDescription is describing.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getEventType()">getEventType</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the EventType from which this event is derived.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getName()">getName</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the name of the EXI event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getPrefix()">getPrefix</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the namespace prefix of the event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getURI()">getURI</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the URI of the EXI event.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="EVENT_SD"><!-- --></A><H3>\r
-EVENT_SD</H3>\r
-<PRE>\r
-static final byte <B>EVENT_SD</B></PRE>\r
-<DL>\r
-<DD>Start Document event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_SD">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_ED"><!-- --></A><H3>\r
-EVENT_ED</H3>\r
-<PRE>\r
-static final byte <B>EVENT_ED</B></PRE>\r
-<DL>\r
-<DD>End Document event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_ED">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_SE"><!-- --></A><H3>\r
-EVENT_SE</H3>\r
-<PRE>\r
-static final byte <B>EVENT_SE</B></PRE>\r
-<DL>\r
-<DD>Start Element event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_SE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_AT"><!-- --></A><H3>\r
-EVENT_AT</H3>\r
-<PRE>\r
-static final byte <B>EVENT_AT</B></PRE>\r
-<DL>\r
-<DD>Attribute event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_AT">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_TP"><!-- --></A><H3>\r
-EVENT_TP</H3>\r
-<PRE>\r
-static final byte <B>EVENT_TP</B></PRE>\r
-<DL>\r
-<DD>Attribute <i>xsi:type</i>.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_TP">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_NL"><!-- --></A><H3>\r
-EVENT_NL</H3>\r
-<PRE>\r
-static final byte <B>EVENT_NL</B></PRE>\r
-<DL>\r
-<DD>Attribute <i>xsi:nil</i>.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_NL">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_CH"><!-- --></A><H3>\r
-EVENT_CH</H3>\r
-<PRE>\r
-static final byte <B>EVENT_CH</B></PRE>\r
-<DL>\r
-<DD>Character event (content of an element).\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_CH">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_EE"><!-- --></A><H3>\r
-EVENT_EE</H3>\r
-<PRE>\r
-static final byte <B>EVENT_EE</B></PRE>\r
-<DL>\r
-<DD>End Element event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_EE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_NS"><!-- --></A><H3>\r
-EVENT_NS</H3>\r
-<PRE>\r
-static final byte <B>EVENT_NS</B></PRE>\r
-<DL>\r
-<DD>Namespace declaration event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_NS">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_PI"><!-- --></A><H3>\r
-EVENT_PI</H3>\r
-<PRE>\r
-static final byte <B>EVENT_PI</B></PRE>\r
-<DL>\r
-<DD>Processing Instruction event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_PI">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_CM"><!-- --></A><H3>\r
-EVENT_CM</H3>\r
-<PRE>\r
-static final byte <B>EVENT_CM</B></PRE>\r
-<DL>\r
-<DD>Comment event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_CM">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_ER"><!-- --></A><H3>\r
-EVENT_ER</H3>\r
-<PRE>\r
-static final byte <B>EVENT_ER</B></PRE>\r
-<DL>\r
-<DD>Entity Reference event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_ER">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_DTD"><!-- --></A><H3>\r
-EVENT_DTD</H3>\r
-<PRE>\r
-static final byte <B>EVENT_DTD</B></PRE>\r
-<DL>\r
-<DD>Document Type Definition event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_DTD">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="EVENT_BLOB"><!-- --></A><H3>\r
-EVENT_BLOB</H3>\r
-<PRE>\r
-static final byte <B>EVENT_BLOB</B></PRE>\r
-<DL>\r
-<DD>BLOB event (content of an element).\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventDescription.EVENT_BLOB">Constant Field Values</A></DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="getEventKind()"><!-- --></A><H3>\r
-getEventKind</H3>\r
-<PRE>\r
-byte <B>getEventKind</B>()</PRE>\r
-<DL>\r
-<DD>Gets the event kind of which instance data this EventDescription is describing.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>a byte representing the event kind.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getURI()"><!-- --></A><H3>\r
-getURI</H3>\r
-<PRE>\r
-java.lang.String <B>getURI</B>()</PRE>\r
-<DL>\r
-<DD>Gets the URI of the EXI event.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the URI as a String.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getName()"><!-- --></A><H3>\r
-getName</H3>\r
-<PRE>\r
-java.lang.String <B>getName</B>()</PRE>\r
-<DL>\r
-<DD>Gets the name of the EXI event.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the name of the event as a String.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getPrefix()"><!-- --></A><H3>\r
-getPrefix</H3>\r
-<PRE>\r
-java.lang.String <B>getPrefix</B>()</PRE>\r
-<DL>\r
-<DD>Gets the namespace prefix of the event.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the prefix as a String.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getCharacters()"><!-- --></A><H3>\r
-getCharacters</H3>\r
-<PRE>\r
-<A HREF="../../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A> <B>getCharacters</B>()</PRE>\r
-<DL>\r
-<DD>Gets the value of an EVENT_CH, 
- Attribute (EVENT_AT, EVENT_NL, EVENT_TP), EVENT_CM,
- EVENT_DTD or EVENT_PI event.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>a Characters of the corresponding value</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getBinaryDataSource()"><!-- --></A><H3>\r
-getBinaryDataSource</H3>\r
-<PRE>\r
-<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A> <B>getBinaryDataSource</B>()</PRE>\r
-<DL>\r
-<DD>Gets the value of an EVENT_BLOB.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>a BinaryData of the corresponding value</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getEventType()"><!-- --></A><H3>\r
-getEventType</H3>\r
-<PRE>\r
-<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A> <B>getEventType</B>()</PRE>\r
-<DL>\r
-<DD>Returns the EventType from which this event is derived.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/EventDescription.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EventDescription.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventType.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/EventType.html
deleted file mode 100644 (file)
index aaef0c4..0000000
+++ /dev/null
@@ -1,829 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EventType\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common.EventType class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EventType";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/EventType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EventType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.openexi.proc.common.EventCode">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.common</FONT>\r
-<BR>\r
-Class EventType</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">org.openexi.proc.common.EventCode\r
-      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.EventType</B>\r
-</PRE>\r
-<DL>\r
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public class <B>EventType</B><DT>extends org.openexi.proc.common.EventCode<DT>implements <A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></DL>\r
-</PRE>\r
-\r
-<P>\r
-EventType denotes terminal symbols of grammar productions  
- defined in the EXI 1.0 specification.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_AT">ITEM_AT</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for an Attribute learned by built-in element grammars 
- from prior attribute occurrences.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_AT_WC_ANY_UNTYPED">ITEM_AT_WC_ANY_UNTYPED</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wildcard event type for an Attribute where the attribute's defined 
-  datatype (if any) is disregarded.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_CH">ITEM_CH</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Character event (character events store values as strings).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_CM">ITEM_CM</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Comment.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_DTD">ITEM_DTD</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Document Type Definition.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_ED">ITEM_ED</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for End of Document.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_EE">ITEM_EE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for End of Element.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_ER">ITEM_ER</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for an Entity Reference.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_NS">ITEM_NS</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Namespace declaration.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_PI">ITEM_PI</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Processing Instruction.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SC">ITEM_SC</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self-contained items are not supported in this release of OpenEXI.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT">ITEM_SCHEMA_AT</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for AttributeUse that matches an attribute event with
- a valid value.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_INVALID_VALUE">ITEM_SCHEMA_AT_INVALID_VALUE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for AttributeUse that matches an attribute event with an 
- invalid value.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_ANY">ITEM_SCHEMA_AT_WC_ANY</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute wildcard event type stemming from a schema, where the attribute's 
- defined datatype (if any) is applied.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_AT_WC_NS">ITEM_SCHEMA_AT_WC_NS</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute wildcard event type, qualified with a specific namespace, stemming
- from a schema where the attribute's defined datatype (if any) is applied.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH">ITEM_SCHEMA_CH</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a defined Character event in an EXI stream processed
- using a schema.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_CH_MIXED">ITEM_SCHEMA_CH_MIXED</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for a Character event that occurs in the context of an element 
- defined so as to permit mixed content (mark up and data) in an EXI 
- stream processed using a schema.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_NIL">ITEM_SCHEMA_NIL</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special Attribute that indicates the value of the associated element is
- explicitly <i>nil</i> rather than an empty string.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_TYPE">ITEM_SCHEMA_TYPE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special Attribute that describes a data type for the associated
- element.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_ANY">ITEM_SCHEMA_WC_ANY</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute wildcard event type stemming from a schema where the 
- attribute's defined datatype (if any) is applied.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SCHEMA_WC_NS">ITEM_SCHEMA_WC_NS</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for an element defined in a namespace in an EXI stream
- processed using a schema.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SD">ITEM_SD</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for Start Document.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SE">ITEM_SE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Event type for Start Element.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;byte</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#ITEM_SE_WC">ITEM_SE_WC</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wildcard event type for an element.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#name">name</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Local name of event type definition.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/EventType.html#uri">uri</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URI of event type definition.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="fields_inherited_from_class_org.openexi.proc.common.EventCode"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Fields inherited from class org.openexi.proc.common.EventCode</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>EVENT_CODE_DEPTH_ONE, EVENT_CODE_DEPTH_THREE, EVENT_CODE_DEPTH_TWO, ITEM_TUPLE, itemType, parent, position</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="fields_inherited_from_class_org.openexi.proc.common.EventDescription"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Fields inherited from interface org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_AT">EVENT_AT</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_BLOB">EVENT_BLOB</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_CH">EVENT_CH</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_CM">EVENT_CM</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_DTD">EVENT_DTD</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_ED">EVENT_ED</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_EE">EVENT_EE</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_ER">EVENT_ER</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_NL">EVENT_NL</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_NS">EVENT_NS</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_PI">EVENT_PI</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_SD">EVENT_SD</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_SE">EVENT_SE</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#EVENT_TP">EVENT_TP</A></CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.openexi.proc.common.EventCode"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class org.openexi.proc.common.EventCode</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>setParentalContext</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.openexi.proc.common.EventDescription"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><A HREF="../../../../org/openexi/proc/common/EventDescription.html#getBinaryDataSource()">getBinaryDataSource</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getCharacters()">getCharacters</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getEventKind()">getEventKind</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getEventType()">getEventType</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getName()">getName</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getPrefix()">getPrefix</A>, <A HREF="../../../../org/openexi/proc/common/EventDescription.html#getURI()">getURI</A></CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="ITEM_PI"><!-- --></A><H3>\r
-ITEM_PI</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_PI</B></PRE>\r
-<DL>\r
-<DD>Event type for a Processing Instruction. Value is 0.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_PI">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_CM"><!-- --></A><H3>\r
-ITEM_CM</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_CM</B></PRE>\r
-<DL>\r
-<DD>Event type for a Comment.
- <br/>Value is 1.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_CM">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_ER"><!-- --></A><H3>\r
-ITEM_ER</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_ER</B></PRE>\r
-<DL>\r
-<DD>Event type for an Entity Reference.
- <br/>Value is 2.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_ER">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_CH"><!-- --></A><H3>\r
-ITEM_CH</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_CH</B></PRE>\r
-<DL>\r
-<DD>Event type for a Character event (character events store values as strings).
- <br/>Value is 3.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_CH">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_ED"><!-- --></A><H3>\r
-ITEM_ED</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_ED</B></PRE>\r
-<DL>\r
-<DD>Event type for End of Document.
- <br/>Value is 4.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_ED">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SE_WC"><!-- --></A><H3>\r
-ITEM_SE_WC</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SE_WC</B></PRE>\r
-<DL>\r
-<DD>Wildcard event type for an element. OpenEXI will first attempt
- to find a corresponding element name in the schema, if present. If 
- no definition is available, it is given this tag.
- <br/>Value is 5.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SE_WC">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SC"><!-- --></A><H3>\r
-ITEM_SC</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SC</B></PRE>\r
-<DL>\r
-<DD>Self-contained items are not supported in this release of OpenEXI. 
- Event type for self-contained item.
- <br/>Value is 6.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SC">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_NS"><!-- --></A><H3>\r
-ITEM_NS</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_NS</B></PRE>\r
-<DL>\r
-<DD>Event type for a Namespace declaration.<br/>
- <br/>Value is 7.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_NS">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_AT_WC_ANY_UNTYPED"><!-- --></A><H3>\r
-ITEM_AT_WC_ANY_UNTYPED</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_AT_WC_ANY_UNTYPED</B></PRE>\r
-<DL>\r
-<DD>Wildcard event type for an Attribute where the attribute's defined 
-  datatype (if any) is disregarded. 
-  This is the "catch-all" for Attributes that do not match any of the 
-  other Event Types in an EXI stream processed using Default options. 
-  <br />Value is 8.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_AT_WC_ANY_UNTYPED">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_EE"><!-- --></A><H3>\r
-ITEM_EE</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_EE</B></PRE>\r
-<DL>\r
-<DD>Event type for End of Element.
- <br />Value is 9.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_EE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_DTD"><!-- --></A><H3>\r
-ITEM_DTD</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_DTD</B></PRE>\r
-<DL>\r
-<DD>Event type for a Document Type Definition.
- <br />Value is 10.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_DTD">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SE"><!-- --></A><H3>\r
-ITEM_SE</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SE</B></PRE>\r
-<DL>\r
-<DD>Event type for Start Element.
- <br/>Value is 11.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_AT"><!-- --></A><H3>\r
-ITEM_AT</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_AT</B></PRE>\r
-<DL>\r
-<DD>Event type for an Attribute learned by built-in element grammars 
- from prior attribute occurrences.
- <br/>Value is 12.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_AT">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SD"><!-- --></A><H3>\r
-ITEM_SD</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SD</B></PRE>\r
-<DL>\r
-<DD>Event type for Start Document.
- <br/>Value is 13.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SD">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_WC_ANY"><!-- --></A><H3>\r
-ITEM_SCHEMA_WC_ANY</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_WC_ANY</B></PRE>\r
-<DL>\r
-<DD>Attribute wildcard event type stemming from a schema where the 
- attribute's defined datatype (if any) is applied. 
- <br/>Value is 14.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_WC_ANY">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_WC_NS"><!-- --></A><H3>\r
-ITEM_SCHEMA_WC_NS</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_WC_NS</B></PRE>\r
-<DL>\r
-<DD>Event type for an element defined in a namespace in an EXI stream
- processed using a schema. 
- <br/>Value is 15.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_WC_NS">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_AT"><!-- --></A><H3>\r
-ITEM_SCHEMA_AT</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_AT</B></PRE>\r
-<DL>\r
-<DD>Event type for AttributeUse that matches an attribute event with
- a valid value.
- <br/>Value is 16.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_AT">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_AT_WC_ANY"><!-- --></A><H3>\r
-ITEM_SCHEMA_AT_WC_ANY</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_AT_WC_ANY</B></PRE>\r
-<DL>\r
-<DD>Attribute wildcard event type stemming from a schema, where the attribute's 
- defined datatype (if any) is applied.
- <br/>Value is 17.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_WC_ANY">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_AT_WC_NS"><!-- --></A><H3>\r
-ITEM_SCHEMA_AT_WC_NS</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_AT_WC_NS</B></PRE>\r
-<DL>\r
-<DD>Attribute wildcard event type, qualified with a specific namespace, stemming
- from a schema where the attribute's defined datatype (if any) is applied. 
- <br/>Value is 18.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_WC_NS">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_CH"><!-- --></A><H3>\r
-ITEM_SCHEMA_CH</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_CH</B></PRE>\r
-<DL>\r
-<DD>Event type for a defined Character event in an EXI stream processed
- using a schema. 
- <br/>Value is 19.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_CH">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_CH_MIXED"><!-- --></A><H3>\r
-ITEM_SCHEMA_CH_MIXED</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_CH_MIXED</B></PRE>\r
-<DL>\r
-<DD>Event type for a Character event that occurs in the context of an element 
- defined so as to permit mixed content (mark up and data) in an EXI 
- stream processed using a schema. 
- <br/>Value is 20.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_CH_MIXED">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_NIL"><!-- --></A><H3>\r
-ITEM_SCHEMA_NIL</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_NIL</B></PRE>\r
-<DL>\r
-<DD>Special Attribute that indicates the value of the associated element is
- explicitly <i>nil</i> rather than an empty string.
- <br/>Value is 21.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_NIL">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_TYPE"><!-- --></A><H3>\r
-ITEM_SCHEMA_TYPE</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_TYPE</B></PRE>\r
-<DL>\r
-<DD>Special Attribute that describes a data type for the associated
- element. For example, the schema might define a String value, but
- the XML document being processed can declare that the element contains a
- date-time field.
- <br/>Value is 22.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_TYPE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ITEM_SCHEMA_AT_INVALID_VALUE"><!-- --></A><H3>\r
-ITEM_SCHEMA_AT_INVALID_VALUE</H3>\r
-<PRE>\r
-public static final byte <B>ITEM_SCHEMA_AT_INVALID_VALUE</B></PRE>\r
-<DL>\r
-<DD>Event type for AttributeUse that matches an attribute event with an 
- invalid value. 
- <br/>Value is 23.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.EventType.ITEM_SCHEMA_AT_INVALID_VALUE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="uri"><!-- --></A><H3>\r
-uri</H3>\r
-<PRE>\r
-public final java.lang.String <B>uri</B></PRE>\r
-<DL>\r
-<DD>URI of event type definition.\r
-<P>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="name"><!-- --></A><H3>\r
-name</H3>\r
-<PRE>\r
-public final java.lang.String <B>name</B></PRE>\r
-<DL>\r
-<DD>Local name of event type definition.\r
-<P>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/EventType.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EventType.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.openexi.proc.common.EventCode">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/GrammarOptions.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/GrammarOptions.html
deleted file mode 100644 (file)
index 7ea6e13..0000000
+++ /dev/null
@@ -1,528 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-GrammarOptions\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common.GrammarOptions class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="GrammarOptions";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/GrammarOptions.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="GrammarOptions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.common</FONT>\r
-<BR>\r
-Class GrammarOptions</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.GrammarOptions</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>GrammarOptions</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-GrammarOptions computes a short integer that represents settings in the EXI Grammar settings
- that determine how an EXI file will be encoded or decoded.
-<br/><br/>
- Values are set using binary switch values (represented as short integers).
- <br /><br />
- If no options have been set, the value is 0 (this is an temporary internal
- value, rather than a valid setting).
- <br/><br/>
- If an XSD is available, and the file to be processed is 100% compatible with the XSD, choosing
- STRICT_OPTIONS (1) provides the best performance. No other options can be set 
- when files are encoded or decoded in strict mode.
- <br/><br/>
- The DEFAULT_OPTIONS setting is 2. The following table lists all of the options and their values. 
- <br/><br/>
- <table align="center" border="1" cellpadding="3" width="640"><tr>
- <th>Constant</th><th>Value</th>
- </tr><tr>
- <td>STRICT_OPTIONS</td><td>1</td>
- </tr><tr>
- <td>DEFAULT_OPTIONS</td><td>2</td>
- </tr><tr><td>
- ADD_NS</td><td>4
- </td></tr><tr><td>
- ADD_SC</td><td>N/A*
- </td></tr><tr><td>
- ADD_DTD</td><td>16
- </td></tr><tr><td>
- ADD_CM</td><td>32
- </td></tr><tr><td>
- ADD_PI</td><td>64
- </td></tr>
- <tr><td colspan="2">*The self-contained option is not supported in this release.
- </td></tr>
- </table>
- <br/><br/>
- The value of DEFAULT_OPTIONS is 2. When you pass the options variable to an add[??] method, 
- the binary switch value is added to the current value of the options variable.  
- The sum of all additional switches becomes a concise list of the selected options. 
- <br/><br/>
- For example, if you preserve comments and processing instructions, the total is
- 98 (2 + 32 + 64). The bitwise options are set correctly, because there is one and only one 
- combination of options that sums up to 98.
- <br/><br/>
- If your application uses the same options every time, you can hard code the numeric value 
- as a short integer and use it to create your GrammarCache. For example:
- <pre>
- GrammarCache gc = new GrammarCache((EXISchema)null,98);
- </pre>
- Be careful to use the correct numeric value, to avoid unexpected results.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;short</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#DEFAULT_OPTIONS">DEFAULT_OPTIONS</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates that undeclared elements and attributes will be 
- processed when the XML stream is encoded and decoded.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;short</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#OPTIONS_UNUSED">OPTIONS_UNUSED</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPTIONS_UNUSED is an internal value.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;short</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#STRICT_OPTIONS">STRICT_OPTIONS</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates that undeclared elements and attributes will throw an
- exception when the XML stream is encoded and decoded.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;short</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#addCM(short)">addCM</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Preserve Comments to <i>true</i>.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;short</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#addDTD(short)">addDTD</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Preserve Document Type Definition to <i>true</i>.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;short</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#addNS(short)">addNS</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Preserve Namespaces to <i>true</i>.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;short</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#addPI(short)">addPI</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets Preserve Processing Instructions to <i>true</i>.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#hasCM(short)">hasCM</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if Preserve Comments is true.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#hasDTD(short)">hasDTD</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if Preserve Document Type Definition is true.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#hasNS(short)">hasNS</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if Preserve Namespaces is true.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#hasPI(short)">hasPI</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if Preserve Processing Instructions is true.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html#isPermitDeviation(short)">isPermitDeviation</A></B>(short&nbsp;options)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <i>true</i> if DEFAULT_OPTIONS is set to true.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="OPTIONS_UNUSED"><!-- --></A><H3>\r
-OPTIONS_UNUSED</H3>\r
-<PRE>\r
-public static final short <B>OPTIONS_UNUSED</B></PRE>\r
-<DL>\r
-<DD>OPTIONS_UNUSED is an internal value.
- It indicates that the grammar options value has not yet been set.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.GrammarOptions.OPTIONS_UNUSED">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="DEFAULT_OPTIONS"><!-- --></A><H3>\r
-DEFAULT_OPTIONS</H3>\r
-<PRE>\r
-public static final short <B>DEFAULT_OPTIONS</B></PRE>\r
-<DL>\r
-<DD>Indicates that undeclared elements and attributes will be 
- processed when the XML stream is encoded and decoded.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.GrammarOptions.DEFAULT_OPTIONS">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="STRICT_OPTIONS"><!-- --></A><H3>\r
-STRICT_OPTIONS</H3>\r
-<PRE>\r
-public static final short <B>STRICT_OPTIONS</B></PRE>\r
-<DL>\r
-<DD>Indicates that undeclared elements and attributes will throw an
- exception when the XML stream is encoded and decoded. When 
- STRICT_OPTIONS is set, all other Grammar Options are ignored.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.common.GrammarOptions.STRICT_OPTIONS">Constant Field Values</A></DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="isPermitDeviation(short)"><!-- --></A><H3>\r
-isPermitDeviation</H3>\r
-<PRE>\r
-public static boolean <B>isPermitDeviation</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Returns <i>true</i> if DEFAULT_OPTIONS is set to true.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="hasNS(short)"><!-- --></A><H3>\r
-hasNS</H3>\r
-<PRE>\r
-public static boolean <B>hasNS</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Returns <i>true</i> if Preserve Namespaces is true.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="hasDTD(short)"><!-- --></A><H3>\r
-hasDTD</H3>\r
-<PRE>\r
-public static boolean <B>hasDTD</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Returns <i>true</i> if Preserve Document Type Definition is true.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="hasCM(short)"><!-- --></A><H3>\r
-hasCM</H3>\r
-<PRE>\r
-public static boolean <B>hasCM</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Returns <i>true</i> if Preserve Comments is true.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="hasPI(short)"><!-- --></A><H3>\r
-hasPI</H3>\r
-<PRE>\r
-public static boolean <B>hasPI</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Returns <i>true</i> if Preserve Processing Instructions is true.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="addNS(short)"><!-- --></A><H3>\r
-addNS</H3>\r
-<PRE>\r
-public static short <B>addNS</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Sets Preserve Namespaces to <i>true</i>. (Adds 4 to the <i>options</i> value.)\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the new <i>options</i> short integer value</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="addDTD(short)"><!-- --></A><H3>\r
-addDTD</H3>\r
-<PRE>\r
-public static short <B>addDTD</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Sets Preserve Document Type Definition to <i>true</i>. (Adds 16 to the <i>options</i> value.)\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the new <i>options</i> short integer value</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="addCM(short)"><!-- --></A><H3>\r
-addCM</H3>\r
-<PRE>\r
-public static short <B>addCM</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Sets Preserve Comments to <i>true</i>. (Adds 32 to the <i>options</i> value.)\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the new <i>options</i> short integer value</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="addPI(short)"><!-- --></A><H3>\r
-addPI</H3>\r
-<PRE>\r
-public static short <B>addPI</B>(short&nbsp;options)</PRE>\r
-<DL>\r
-<DD>Sets Preserve Processing Instructions to <i>true</i>. (Adds 64 to the <i>options</i> value.)\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the new <i>options</i> short integer value</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/GrammarOptions.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="GrammarOptions.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/QName.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/QName.html
deleted file mode 100644 (file)
index 61485ec..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-QName\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common.QName class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="QName";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/QName.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="QName.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.common</FONT>\r
-<BR>\r
-Class QName</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.common.QName</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>QName</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-QName is a pair comprised of a namespace name and a local name  
- to be used in a Datatype Representation Map (DTRM) definition
- to denote an XSD datatype or an EXI datatype representation.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#localName">localName</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Local name of the datatype.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#namespaceName">namespaceName</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If  namespaceName is <i>null</i>, this indicates a failure of
- namespace-prefix binding.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#QName()">QName</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#QName(java.lang.String, java.lang.String)">QName</A></B>(java.lang.String&nbsp;qname,\r
-      java.lang.String&nbsp;uri)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a QName based on its literal qualified name 
- (see http://www.w3.org/TR/xml-names/#ns-qualnames 
- for definition) and namespace name.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/common/QName.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;obj)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="namespaceName"><!-- --></A><H3>\r
-namespaceName</H3>\r
-<PRE>\r
-public java.lang.String <B>namespaceName</B></PRE>\r
-<DL>\r
-<DD>If  namespaceName is <i>null</i>, this indicates a failure of
- namespace-prefix binding. No namespace binding for the
- unprefixed QName is indicated by an empty namespace
- name "".\r
-<P>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="localName"><!-- --></A><H3>\r
-localName</H3>\r
-<PRE>\r
-public java.lang.String <B>localName</B></PRE>\r
-<DL>\r
-<DD>Local name of the datatype.\r
-<P>\r
-<DL>\r
-</DL>\r
-</DL>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="QName()"><!-- --></A><H3>\r
-QName</H3>\r
-<PRE>\r
-public <B>QName</B>()</PRE>\r
-<DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="QName(java.lang.String, java.lang.String)"><!-- --></A><H3>\r
-QName</H3>\r
-<PRE>\r
-public <B>QName</B>(java.lang.String&nbsp;qname,\r
-             java.lang.String&nbsp;uri)</PRE>\r
-<DL>\r
-<DD>Creates a QName based on its literal qualified name 
- (see http://www.w3.org/TR/xml-names/#ns-qualnames 
- for definition) and namespace name.\r
-<P>\r
-<DL>\r
-<DT><B>Parameters:</B><DD><CODE>qname</CODE> - literal qualified name in its entirety<DD><CODE>uri</CODE> - namespace name (nullable) of the QName<DT><B>See Also:</B><DD><CODE>http://www.w3.org/TR/xml-names/#ns-qualnames</CODE></DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="equals(java.lang.Object)"><!-- --></A><H3>\r
-equals</H3>\r
-<PRE>\r
-public boolean <B>equals</B>(java.lang.Object&nbsp;obj)</PRE>\r
-<DL>\r
-<DD><DL>\r
-<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/QName.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="QName.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-frame.html
deleted file mode 100644 (file)
index fcab610..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.common\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameTitleFont">\r
-<A HREF="../../../../org/openexi/proc/common/package-summary.html" target="classFrame">org.openexi.proc.common</A></FONT>\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Interfaces</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="EventDescription.html" title="interface in org.openexi.proc.common" target="classFrame"><I>EventDescription</I></A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Classes</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="BinaryDataSource.html" title="class in org.openexi.proc.common" target="classFrame">BinaryDataSource</A>\r
-<BR>\r
-<A HREF="EventType.html" title="class in org.openexi.proc.common" target="classFrame">EventType</A>\r
-<BR>\r
-<A HREF="EXIOptions.html" title="class in org.openexi.proc.common" target="classFrame">EXIOptions</A>\r
-<BR>\r
-<A HREF="GrammarOptions.html" title="class in org.openexi.proc.common" target="classFrame">GrammarOptions</A>\r
-<BR>\r
-<A HREF="QName.html" title="class in org.openexi.proc.common" target="classFrame">QName</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Enums</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="AlignmentType.html" title="enum in org.openexi.proc.common" target="classFrame">AlignmentType</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-summary.html
deleted file mode 100644 (file)
index c4f3e1c..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.common\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.common package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.proc.common";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<H2>\r
-Package org.openexi.proc.common\r
-</H2>\r
-\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The common package contains classes, interfaces, and enumerators that define the vocabulary used to describe EXI streams (events, options, alignment, and character string values).\r
-<P>\r
-<B>See:</B>\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Interface Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></B></TD>\r
-<TD>EventDescription provides accessors to the current EXI event data
- during the decode process.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common">BinaryDataSource</A></B></TD>\r
-<TD>&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common">EventType</A></B></TD>\r
-<TD>EventType denotes terminal symbols of grammar productions  
- defined in the EXI 1.0 specification.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A></B></TD>\r
-<TD>EXIOptions provides accessors for values associated with
- EXI options in the EXI header of an EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common">GrammarOptions</A></B></TD>\r
-<TD>GrammarOptions computes a short integer that represents settings in the EXI Grammar settings
- that determine how an EXI file will be encoded or decoded.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A></B></TD>\r
-<TD>QName is a pair comprised of a namespace name and a local name  
- to be used in a Datatype Representation Map (DTRM) definition
- to denote an XSD datatype or an EXI datatype representation.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Enum Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A></B></TD>\r
-<TD>AlignmentType represents one of the following bit alignment 
- styles so as to provide an extra degree of control over the
- way information is stored in EXI format.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-<A NAME="package_description"><!-- --></A><H2>\r
-Package org.openexi.proc.common Description\r
-</H2>\r
-\r
-<P>\r
-<table>\r
-<tr valign="top" cellpadding="3" border="0">\r
-<td>\r
-<p>The common package contains classes, interfaces, and enumerators that define the vocabulary used to describe EXI streams (events, options, alignment, and character string values).\r
-</p>\r
-</td>\r
-<td width="385">\r
-<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_Common.PNG" width="375" height="280" />\r
-</td>\r
-</tr>\r
-</table>\r
-</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/common/package-tree.html
deleted file mode 100644 (file)
index 778ae7c..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.common Class Hierarchy\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.proc.common Class Hierarchy";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-Hierarchy For Package org.openexi.proc.common\r
-</H2>\r
-</CENTER>\r
-<DL>\r
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>\r
-<HR>\r
-<H2>\r
-Class Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>BinaryDataSource</B></A><LI TYPE="circle">org.openexi.proc.common.EventCode<UL>\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>EventType</B></A> (implements org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>)\r
-</UL>\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>EXIOptions</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>GrammarOptions</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>QName</B></A></UL>\r
-</UL>\r
-<H2>\r
-Interface Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>EventDescription</B></A></UL>\r
-<H2>\r
-Enum Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)\r
-<UL>\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="../../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>AlignmentType</B></A></UL>\r
-</UL>\r
-</UL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/common/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/GrammarCache.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/GrammarCache.html
deleted file mode 100644 (file)
index 55b03fa..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-GrammarCache\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.grammars.GrammarCache class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="GrammarCache";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/grammars/GrammarCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="GrammarCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.grammars</FONT>\r
-<BR>\r
-Class GrammarCache</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.grammars.GrammarCache</B>\r
-</PRE>\r
-<DL>\r
-<DT><B>All Implemented Interfaces:</B> <DD>org.openexi.proc.common.IGrammarCache</DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>GrammarCache</B><DT>extends java.lang.Object<DT>implements org.openexi.proc.common.IGrammarCache</DL>\r
-</PRE>\r
-\r
-<P>\r
-A GrammarCache object represents a set of EXI grammars used 
- for processing EXI streams using specific grammar options. 
- The GrammarCache is passed as an argument to 
- the EXIReader and Transmogrifier prior to processing an EXI stream.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;short</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#grammarOptions">grammarOptions</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Short integer that encapsulates <A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><CODE>GrammarOptions</CODE></A>
- for the EXI stream.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#GrammarCache(org.openexi.schema.EXISchema)">GrammarCache</A></B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of GrammarCache informed by a schema with default 
- grammar options.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#GrammarCache(org.openexi.schema.EXISchema, short)">GrammarCache</A></B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema,\r
-             short&nbsp;grammarOptions)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of GrammarCache informed by a schema with the
- specified grammar options.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#GrammarCache(short)">GrammarCache</A></B>(short&nbsp;grammarOptions)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of GrammarCache with the specified grammar options.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html#getEXISchema()">getEXISchema</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the compiled EXI Schema.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.openexi.proc.common.IGrammarCache"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.openexi.proc.common.IGrammarCache</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>getElementGrammarUse</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="grammarOptions"><!-- --></A><H3>\r
-grammarOptions</H3>\r
-<PRE>\r
-public final short <B>grammarOptions</B></PRE>\r
-<DL>\r
-<DD>Short integer that encapsulates <A HREF="../../../../org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><CODE>GrammarOptions</CODE></A>
- for the EXI stream.\r
-<P>\r
-<DL>\r
-</DL>\r
-</DL>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="GrammarCache(org.openexi.schema.EXISchema)"><!-- --></A><H3>\r
-GrammarCache</H3>\r
-<PRE>\r
-public <B>GrammarCache</B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema)</PRE>\r
-<DL>\r
-<DD>Creates an instance of GrammarCache informed by a schema with default 
- grammar options.\r
-<P>\r
-<DL>\r
-<DT><B>Parameters:</B><DD><CODE>EXISchema</CODE> - compiled schema</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="GrammarCache(short)"><!-- --></A><H3>\r
-GrammarCache</H3>\r
-<PRE>\r
-public <B>GrammarCache</B>(short&nbsp;grammarOptions)</PRE>\r
-<DL>\r
-<DD>Creates an instance of GrammarCache with the specified grammar options.\r
-<P>\r
-<DL>\r
-<DT><B>Parameters:</B><DD><CODE>grammarOptions</CODE> - integer value that represents a grammar option configuration</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="GrammarCache(org.openexi.schema.EXISchema, short)"><!-- --></A><H3>\r
-GrammarCache</H3>\r
-<PRE>\r
-public <B>GrammarCache</B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema,\r
-                    short&nbsp;grammarOptions)</PRE>\r
-<DL>\r
-<DD>Creates an instance of GrammarCache informed by a schema with the
- specified grammar options.\r
-<P>\r
-<DL>\r
-<DT><B>Parameters:</B><DD><CODE>EXISchema</CODE> - compiled schema<DD><CODE>grammarOptions</CODE> - integer value that represents a grammar option configuration</DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="getEXISchema()"><!-- --></A><H3>\r
-getEXISchema</H3>\r
-<PRE>\r
-public <A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>getEXISchema</B>()</PRE>\r
-<DL>\r
-<DD>Gets the compiled EXI Schema.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Specified by:</B><DD><CODE>getEXISchema</CODE> in interface <CODE>org.openexi.proc.common.IGrammarCache</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>an EXI schema.</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/grammars/GrammarCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="GrammarCache.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-frame.html
deleted file mode 100644 (file)
index 5eb44a3..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.grammars\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.grammars package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameTitleFont">\r
-<A HREF="../../../../org/openexi/proc/grammars/package-summary.html" target="classFrame">org.openexi.proc.grammars</A></FONT>\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Classes</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="GrammarCache.html" title="class in org.openexi.proc.grammars" target="classFrame">GrammarCache</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-summary.html
deleted file mode 100644 (file)
index 3ae5291..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.grammars\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.grammars package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.proc.grammars";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/grammars/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<H2>\r
-Package org.openexi.proc.grammars\r
-</H2>\r
-\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The grammars package contains the GrammarCache, which combines an XML Schema Definition with EXI grammar options to create an EXI Schema.\r
-<P>\r
-<B>See:</B>\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A></B></TD>\r
-<TD>A GrammarCache object represents a set of EXI grammars used 
- for processing EXI streams using specific grammar options.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-<A NAME="package_description"><!-- --></A><H2>\r
-Package org.openexi.proc.grammars Description\r
-</H2>\r
-\r
-<P>\r
-<table>\r
-<tr valign="top" cellpadding="3" border="0">\r
-<td>\r
-<p>The grammars package contains the GrammarCache, which combines an XML Schema Definition with EXI grammar options to create an EXI Schema.\r
-</p>\r
-</td>\r
-<td width="385">\r
-<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_Grammars.PNG" width="375" height="280" />\r
-</td>\r
-</tr>\r
-</table>\r
-</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/grammars/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/grammars/package-tree.html
deleted file mode 100644 (file)
index 5425149..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.grammars Class Hierarchy\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.proc.grammars Class Hierarchy";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/grammars/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-Hierarchy For Package org.openexi.proc.grammars\r
-</H2>\r
-</CENTER>\r
-<DL>\r
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>\r
-<HR>\r
-<H2>\r
-Class Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">org.openexi.proc.grammars.<A HREF="../../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><B>GrammarCache</B></A> (implements org.openexi.proc.common.IGrammarCache)\r
-</UL>\r
-</UL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/common/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/grammars/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/BinaryDataSink.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/BinaryDataSink.html
deleted file mode 100644 (file)
index 0f9e531..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-BinaryDataSink\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.io.BinaryDataSink interface">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="BinaryDataSink";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/BinaryDataSink.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="BinaryDataSink.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.io</FONT>\r
-<BR>\r
-Interface BinaryDataSink</H2>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public interface <B>BinaryDataSink</B></DL>\r
-</PRE>\r
-\r
-<P>\r
-BinaryDataSink represents a sink that accepts successive chunks of binary data.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<P>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/BinaryDataSink.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="BinaryDataSink.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/CharacterBuffer.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/CharacterBuffer.html
deleted file mode 100644 (file)
index 7b7e75e..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-CharacterBuffer\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.io.CharacterBuffer class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="CharacterBuffer";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/CharacterBuffer.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="CharacterBuffer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.io</FONT>\r
-<BR>\r
-Class CharacterBuffer</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.io.CharacterBuffer</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>CharacterBuffer</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html#BUFSIZE_DEFAULT">BUFSIZE_DEFAULT</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html#CharacterBuffer(int)">CharacterBuffer</A></B>(int&nbsp;bufSize)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="BUFSIZE_DEFAULT"><!-- --></A><H3>\r
-BUFSIZE_DEFAULT</H3>\r
-<PRE>\r
-public static final int <B>BUFSIZE_DEFAULT</B></PRE>\r
-<DL>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.openexi.proc.io.CharacterBuffer.BUFSIZE_DEFAULT">Constant Field Values</A></DL>\r
-</DL>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="CharacterBuffer(int)"><!-- --></A><H3>\r
-CharacterBuffer</H3>\r
-<PRE>\r
-public <B>CharacterBuffer</B>(int&nbsp;bufSize)</PRE>\r
-<DL>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/CharacterBuffer.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="CharacterBuffer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/Scanner.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/Scanner.html
deleted file mode 100644 (file)
index 82b5128..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Scanner\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.io.Scanner class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Scanner";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/Scanner.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="Scanner.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.openexi.proc.grammars.Apparatus">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.proc.io</FONT>\r
-<BR>\r
-Class Scanner</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">org.openexi.proc.grammars.Apparatus\r
-      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.proc.io.Scanner</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public abstract class <B>Scanner</B><DT>extends org.openexi.proc.grammars.Apparatus</DL>\r
-</PRE>\r
-\r
-<P>\r
-The Scanner class provides methods for scanning events 
- in the body of an EXI stream.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="fields_inherited_from_class_org.openexi.proc.grammars.Apparatus"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Fields inherited from class org.openexi.proc.grammars.Apparatus</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>CODEC_BASE64BINARY, CODEC_BOOLEAN, CODEC_DATE, CODEC_DATETIME, CODEC_DECIMAL, CODEC_DOUBLE, CODEC_ENUMERATION, CODEC_GDAY, CODEC_GMONTH, CODEC_GMONTHDAY, CODEC_GYEAR, CODEC_GYEARMONTH, CODEC_HEXBINARY, CODEC_INTEGER, CODEC_LEXICAL, CODEC_LIST, CODEC_STRING, CODEC_TIME, currentState, eventTypesWorkSpace, schema, stringTable</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#closeInputStream()">closeInputStream</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close the input stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#getHeaderOptions()">getHeaderOptions</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the EXI Header options from the header of the
- EXI stream, if present.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>abstract &nbsp;<A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#nextEvent()">nextEvent</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the next event from the EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>abstract &nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#setBinaryChunkSize(int)">setBinaryChunkSize</A></B>(int&nbsp;chunkSize)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Binary values are read in chunks of the specified size when the
- use of binary data is enabled.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../../org/openexi/proc/io/Scanner.html#setSchema(org.openexi.schema.EXISchema, org.openexi.proc.common.QName[], int)">setSchema</A></B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema,\r
-          <A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
-          int&nbsp;n_bindings)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.openexi.proc.grammars.Apparatus"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class org.openexi.proc.grammars.Apparatus</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>attribute, characters, endDocument, endElement, getAlignmentType, getNextEventCodes, getNextEventTypes, getPreserveLexicalValues, miscContent, nillify, reset, setPreserveLexicalValues, setStringTable, startDocument, startElement, startWildcardElement, undeclaredCharacters, wildcardAttribute, xsitp</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="setSchema(org.openexi.schema.EXISchema, org.openexi.proc.common.QName[], int)"><!-- --></A><H3>\r
-setSchema</H3>\r
-<PRE>\r
-public void <B>setSchema</B>(<A HREF="../../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A>&nbsp;schema,\r
-                      <A HREF="../../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
-                      int&nbsp;n_bindings)</PRE>\r
-<DL>\r
-<DD><DL>\r
-<DT><B>Overrides:</B><DD><CODE>setSchema</CODE> in class <CODE>org.openexi.proc.grammars.Apparatus</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="nextEvent()"><!-- --></A><H3>\r
-nextEvent</H3>\r
-<PRE>\r
-public abstract <A HREF="../../../../org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A> <B>nextEvent</B>()\r
-                                    throws java.io.IOException</PRE>\r
-<DL>\r
-<DD>Gets the next event from the EXI stream.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>EXIEvent\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.io.IOException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="closeInputStream()"><!-- --></A><H3>\r
-closeInputStream</H3>\r
-<PRE>\r
-public void <B>closeInputStream</B>()\r
-                      throws java.io.IOException</PRE>\r
-<DL>\r
-<DD>Close the input stream.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.io.IOException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getHeaderOptions()"><!-- --></A><H3>\r
-getHeaderOptions</H3>\r
-<PRE>\r
-public final <A HREF="../../../../org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common">EXIOptions</A> <B>getHeaderOptions</B>()</PRE>\r
-<DL>\r
-<DD>Returns the EXI Header options from the header of the
- EXI stream, if present. Otherwise, returns null.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>EXIOptions or <i>null</i> if no header options are set.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setBinaryChunkSize(int)"><!-- --></A><H3>\r
-setBinaryChunkSize</H3>\r
-<PRE>\r
-public abstract void <B>setBinaryChunkSize</B>(int&nbsp;chunkSize)</PRE>\r
-<DL>\r
-<DD>Binary values are read in chunks of the specified size when the
- use of binary data is enabled.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>chunkSize</CODE> - </DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/Scanner.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="Scanner.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.openexi.proc.grammars.Apparatus">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-frame.html
deleted file mode 100644 (file)
index fe7bf70..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.io\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.io package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameTitleFont">\r
-<A HREF="../../../../org/openexi/proc/io/package-summary.html" target="classFrame">org.openexi.proc.io</A></FONT>\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Interfaces</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="BinaryDataSink.html" title="interface in org.openexi.proc.io" target="classFrame"><I>BinaryDataSink</I></A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Classes</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="CharacterBuffer.html" title="class in org.openexi.proc.io" target="classFrame">CharacterBuffer</A>\r
-<BR>\r
-<A HREF="Scanner.html" title="class in org.openexi.proc.io" target="classFrame">Scanner</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-summary.html
deleted file mode 100644 (file)
index 42831b8..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.io\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc.io package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.proc.io";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/sax/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<H2>\r
-Package org.openexi.proc.io\r
-</H2>\r
-\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The IO package contains the Scanner, which is used by <code>EXIDecoder</code> to read and interpret EXI streams.\r
-<P>\r
-<B>See:</B>\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Interface Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A></B></TD>\r
-<TD>BinaryDataSink represents a sink that accepts successive chunks of binary data.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io">CharacterBuffer</A></B></TD>\r
-<TD>&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io">Scanner</A></B></TD>\r
-<TD>The Scanner class provides methods for scanning events 
- in the body of an EXI stream.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-<A NAME="package_description"><!-- --></A><H2>\r
-Package org.openexi.proc.io Description\r
-</H2>\r
-\r
-<P>\r
-<table>\r
-<tr valign="top" cellpadding="3" border="0">\r
-<td>\r
-<p>The IO package contains the Scanner, which is used by <code>EXIDecoder</code> to read and interpret EXI streams.\r
-</p>\r
-<p>\r
-The IO package also contains the non-public <code>Scriber</code> class, which is used by the <code>Transmogrifier</code> to encode EXI streams (which is why this is called the IO package). <code>Scriber</code> settings are fully implemented in the <code>Transmogrifier</code>.\r
-</p>\r
-</td>\r
-<td width="385">\r
-<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_IO.PNG" width="375" height="280" />\r
-</td>\r
-</tr>\r
-</table>\r
-</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/sax/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/io/package-tree.html
deleted file mode 100644 (file)
index b0cbe12..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc.io Class Hierarchy\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.proc.io Class Hierarchy";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/sax/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-Hierarchy For Package org.openexi.proc.io\r
-</H2>\r
-</CENTER>\r
-<DL>\r
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>\r
-<HR>\r
-<H2>\r
-Class Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">org.openexi.proc.grammars.Apparatus<UL>\r
-<LI TYPE="circle">org.openexi.proc.io.<A HREF="../../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>Scanner</B></A></UL>\r
-<LI TYPE="circle">org.openexi.proc.io.<A HREF="../../../../org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>CharacterBuffer</B></A></UL>\r
-</UL>\r
-<H2>\r
-Interface Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">org.openexi.proc.io.<A HREF="../../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>BinaryDataSink</B></A></UL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../../org/openexi/proc/grammars/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../../org/openexi/sax/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../../index.html?org/openexi/proc/io/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-frame.html
deleted file mode 100644 (file)
index 31406d3..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameTitleFont">\r
-<A HREF="../../../org/openexi/proc/package-summary.html" target="classFrame">org.openexi.proc</A></FONT>\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Interfaces</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="EXISchemaResolver.html" title="interface in org.openexi.proc" target="classFrame"><I>EXISchemaResolver</I></A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Classes</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="EXIDecoder.html" title="class in org.openexi.proc" target="classFrame">EXIDecoder</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Enums</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="HeaderOptionsOutputType.html" title="enum in org.openexi.proc" target="classFrame">HeaderOptionsOutputType</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-summary.html
deleted file mode 100644 (file)
index 957e54a..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.proc package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.proc";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV PACKAGE&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/proc/common/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<H2>\r
-Package org.openexi.proc\r
-</H2>\r
-\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The Proc (Processor) package contains the EXIDecoder, which is used to convert EXI streams to XML format.\r
-<P>\r
-<B>See:</B>\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Interface Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc">EXISchemaResolver</A></B></TD>\r
-<TD>Developers have the option of implementing the EXISchemaResolver interface
- to help EXIReader and EXIDecoder locate the correct grammar cache for parsing 
- an EXI stream.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc">EXIDecoder</A></B></TD>\r
-<TD>EXIDecoder provides methods to configure and 
- instantiate a <A HREF="../../../org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><CODE>Scanner</CODE></A> object
- you can use to parse the contents of an EXI stream.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Enum Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A></B></TD>\r
-<TD>This enumeration provides three possible settings for header options output.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-<A NAME="package_description"><!-- --></A><H2>\r
-Package org.openexi.proc Description\r
-</H2>\r
-\r
-<P>\r
-<table>\r
-<tr valign="top" cellpadding="3" border="0">\r
-<td>\r
-<p>The Proc (Processor) package contains the EXIDecoder, which is used to convert EXI streams to XML format.\r
-EXIDecoder uses the org.openexi.proc.io.Scanner to parse EXI streams into a sequence of XML events. org.openexi.sax.EXIReader wraps EXIDecoder to provide a SAX interface for accessing the XML content.\r
-</p>\r
-<p>\r
-The EXISchemaResolver interface can be implemented and used to add a hint in the EXI header to help EXIDecoder locate the EXISchema.\r
-</p>\r
-<p>The HeaderOptionsOutputType enumerator is used to set the header output options in the Transmogrifier.</td>\r
-<td width="385">\r
-<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_Proc.PNG" width="375" height="280" />\r
-</td>\r
-</tr>\r
-</table>\r
-</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV PACKAGE&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/proc/common/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/proc/package-tree.html
deleted file mode 100644 (file)
index 3bf180e..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.proc Class Hierarchy\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.proc Class Hierarchy";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/proc/common/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-Hierarchy For Package org.openexi.proc\r
-</H2>\r
-</CENTER>\r
-<DL>\r
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>\r
-<HR>\r
-<H2>\r
-Class Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">org.openexi.proc.<A HREF="../../../org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>EXIDecoder</B></A></UL>\r
-</UL>\r
-<H2>\r
-Interface Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">org.openexi.proc.<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>EXISchemaResolver</B></A></UL>\r
-<H2>\r
-Enum Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)\r
-<UL>\r
-<LI TYPE="circle">org.openexi.proc.<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>HeaderOptionsOutputType</B></A></UL>\r
-</UL>\r
-</UL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/proc/common/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/proc/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/BinaryDataHandler.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/BinaryDataHandler.html
deleted file mode 100644 (file)
index b73a833..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-BinaryDataHandler\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.sax.BinaryDataHandler interface">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="BinaryDataHandler";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/BinaryDataHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="BinaryDataHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.sax</FONT>\r
-<BR>\r
-Interface BinaryDataHandler</H2>\r
-<DL>\r
-<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A></DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public interface <B>BinaryDataHandler</B></DL>\r
-</PRE>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/BinaryDataHandler.html#binaryData(byte[], int, int, org.openexi.proc.io.BinaryDataSink)">binaryData</A></B>(byte[]&nbsp;byteArray,\r
-           int&nbsp;offset,\r
-           int&nbsp;length,\r
-           <A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A>&nbsp;binaryDataSink)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes a binary value where the schema expects a binary value.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/BinaryDataHandler.html#endBinaryData(org.openexi.proc.io.BinaryDataSink)">endBinaryData</A></B>(<A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A>&nbsp;binaryDataSink)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark the end of a binary value.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/BinaryDataHandler.html#startBinaryData(long)">startBinaryData</A></B>(long&nbsp;totalSize)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark the start of a binary value.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="startBinaryData(long)"><!-- --></A><H3>\r
-startBinaryData</H3>\r
-<PRE>\r
-<A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A> <B>startBinaryData</B>(long&nbsp;totalSize)\r
-                               throws org.xml.sax.SAXException</PRE>\r
-<DL>\r
-<DD>Mark the start of a binary value.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.xml.sax.SAXException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="binaryData(byte[], int, int, org.openexi.proc.io.BinaryDataSink)"><!-- --></A><H3>\r
-binaryData</H3>\r
-<PRE>\r
-void <B>binaryData</B>(byte[]&nbsp;byteArray,\r
-                int&nbsp;offset,\r
-                int&nbsp;length,\r
-                <A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A>&nbsp;binaryDataSink)\r
-                throws org.xml.sax.SAXException</PRE>\r
-<DL>\r
-<DD>Writes a binary value where the schema expects a binary value.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.xml.sax.SAXException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="endBinaryData(org.openexi.proc.io.BinaryDataSink)"><!-- --></A><H3>\r
-endBinaryData</H3>\r
-<PRE>\r
-void <B>endBinaryData</B>(<A HREF="../../../org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io">BinaryDataSink</A>&nbsp;binaryDataSink)\r
-                   throws org.xml.sax.SAXException</PRE>\r
-<DL>\r
-<DD>Mark the end of a binary value.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.xml.sax.SAXException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/BinaryDataHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="BinaryDataHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/EXIReader.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/EXIReader.html
deleted file mode 100644 (file)
index 228aa75..0000000
+++ /dev/null
@@ -1,645 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXIReader\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.sax.EXIReader class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXIReader";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/EXIReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXIReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.sax</FONT>\r
-<BR>\r
-Class EXIReader</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">org.openexi.sax.ReaderSupport</A>\r
-      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.sax.EXIReader</B>\r
-</PRE>\r
-<DL>\r
-<DT><B>All Implemented Interfaces:</B> <DD>org.xml.sax.Attributes, org.xml.sax.XMLReader</DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>EXIReader</B><DT>extends <A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A><DT>implements org.xml.sax.XMLReader</DL>\r
-</PRE>\r
-\r
-<P>\r
-EXIReader implements the SAX XMLReader to provide a convenient and 
- familiar interface for decoding an EXI stream.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#EXIReader()">EXIReader</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#getFeature(java.lang.String)">getFeature</A></B>(java.lang.String&nbsp;name)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get features for the SAX parser.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#getProperty(java.lang.String)">getProperty</A></B>(java.lang.String&nbsp;name)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use to retrieve the name of the lexical handler, currently the only
- property recognized by this class.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setAlignmentType(org.openexi.proc.common.AlignmentType)">setAlignmentType</A></B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the bit alignment style used to compile the EXI input stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setBlockSize(int)">setBlockSize</A></B>(int&nbsp;blockSize)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)">setDatatypeRepresentationMap</A></B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
-                             int&nbsp;n_bindings)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a datatype representation map.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setEXISchemaResolver(org.openexi.proc.EXISchemaResolver)">setEXISchemaResolver</A></B>(<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc">EXISchemaResolver</A>&nbsp;schemaResolver)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the EXISchemaResolver to retrieve the schema needed to decode the 
- current EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setFeature(java.lang.String, boolean)">setFeature</A></B>(java.lang.String&nbsp;name,\r
-           boolean&nbsp;value)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set features for the SAX parser.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setFragment(boolean)">setFragment</A></B>(boolean&nbsp;isFragment)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to true if the EXI input stream is an XML fragment (a non-compliant
- XML document with multiple root elements).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setLexicalHandler(org.xml.sax.ext.LexicalHandler)">setLexicalHandler</A></B>(org.xml.sax.ext.LexicalHandler&nbsp;lexicalHandler)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a SAX lexical handler to receive SAX lexical events.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setPreserveLexicalValues(boolean)">setPreserveLexicalValues</A></B>(boolean&nbsp;preserveLexicalValues)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to true if the EXI input stream was compiled with the Preserve Lexical
- Values set to true.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setProperty(java.lang.String, java.lang.Object)">setProperty</A></B>(java.lang.String&nbsp;name,\r
-            java.lang.Object&nbsp;value)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method wraps the friendlier setLexicalHandler method to provide 
- syntax familiar to experienced SAX programmers.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setValueMaxLength(int)">setValueMaxLength</A></B>(int&nbsp;valueMaxLength)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum length of a string that will be stored for reuse in the
- String Table.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/EXIReader.html#setValuePartitionCapacity(int)">setValuePartitionCapacity</A></B>(int&nbsp;valuePartitionCapacity)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum number of values in the String Table.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.openexi.sax.ReaderSupport"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class org.openexi.sax.<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A></B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><A HREF="../../../org/openexi/sax/ReaderSupport.html#getContentHandler()">getContentHandler</A>, <A HREF="../../../org/openexi/sax/ReaderSupport.html#setContentHandler(org.xml.sax.ContentHandler)">setContentHandler</A>, <A HREF="../../../org/openexi/sax/ReaderSupport.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)">setGrammarCache</A></CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.XMLReader"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.XMLReader</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>getContentHandler, getDTDHandler, getEntityResolver, getErrorHandler, parse, parse, setContentHandler, setDTDHandler, setEntityResolver, setErrorHandler</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.Attributes"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.Attributes</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>getIndex, getIndex, getLength, getLocalName, getQName, getType, getType, getType, getURI, getValue, getValue, getValue</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="EXIReader()"><!-- --></A><H3>\r
-EXIReader</H3>\r
-<PRE>\r
-public <B>EXIReader</B>()</PRE>\r
-<DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="setProperty(java.lang.String, java.lang.Object)"><!-- --></A><H3>\r
-setProperty</H3>\r
-<PRE>\r
-public final void <B>setProperty</B>(java.lang.String&nbsp;name,\r
-                              java.lang.Object&nbsp;value)\r
-                       throws org.xml.sax.SAXNotRecognizedException</PRE>\r
-<DL>\r
-<DD>This method wraps the friendlier setLexicalHandler method to provide 
- syntax familiar to experienced SAX programmers. The only property 
- supported is: <pre>http://xml.org/sax/properties/lexical-handler</pre>\r
-<P>\r
-<DD><DL>\r
-<DT><B>Specified by:</B><DD><CODE>setProperty</CODE> in interface <CODE>org.xml.sax.XMLReader</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>name</CODE> - must equal "http://xml.org/sax/properties/lexical-handler"<DD><CODE>value</CODE> - an org.xml.sax.ext.LexicalHandler object\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.xml.sax.SAXNotRecognizedException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getProperty(java.lang.String)"><!-- --></A><H3>\r
-getProperty</H3>\r
-<PRE>\r
-public final java.lang.Object <B>getProperty</B>(java.lang.String&nbsp;name)\r
-                                   throws org.xml.sax.SAXNotRecognizedException</PRE>\r
-<DL>\r
-<DD>Use to retrieve the name of the lexical handler, currently the only
- property recognized by this class. Pass the String
- "http://xml.org/sax/properties/lexical-handler" as the name.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Specified by:</B><DD><CODE>getProperty</CODE> in interface <CODE>org.xml.sax.XMLReader</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>String name of the lexical handler\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.xml.sax.SAXNotRecognizedException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setFeature(java.lang.String, boolean)"><!-- --></A><H3>\r
-setFeature</H3>\r
-<PRE>\r
-public final void <B>setFeature</B>(java.lang.String&nbsp;name,\r
-                             boolean&nbsp;value)\r
-                      throws org.xml.sax.SAXNotRecognizedException,\r
-                             org.xml.sax.SAXNotSupportedException</PRE>\r
-<DL>\r
-<DD>Set features for the SAX parser. The only supported arguments are <pre>
- EXIReader.setFeature("http://xml.org/sax/features/namespaces", true);</pre> and <pre>
- EXIReader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);</pre>\r
-<P>\r
-<DD><DL>\r
-<DT><B>Specified by:</B><DD><CODE>setFeature</CODE> in interface <CODE>org.xml.sax.XMLReader</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.xml.sax.SAXNotRecognizedException</CODE>\r
-<DD><CODE>org.xml.sax.SAXNotSupportedException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getFeature(java.lang.String)"><!-- --></A><H3>\r
-getFeature</H3>\r
-<PRE>\r
-public final boolean <B>getFeature</B>(java.lang.String&nbsp;name)\r
-                         throws org.xml.sax.SAXNotRecognizedException</PRE>\r
-<DL>\r
-<DD>Get features for the SAX parser.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Specified by:</B><DD><CODE>getFeature</CODE> in interface <CODE>org.xml.sax.XMLReader</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD><i>true</i> if the feature is "http://xml.org/sax/features/namespaces"
- and <i>false</i> if the feature is "http://xml.org/sax/features/namespace-prefixes"\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.xml.sax.SAXNotRecognizedException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setAlignmentType(org.openexi.proc.common.AlignmentType)"><!-- --></A><H3>\r
-setAlignmentType</H3>\r
-<PRE>\r
-public final void <B>setAlignmentType</B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)\r
-                            throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the bit alignment style used to compile the EXI input stream.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>alignmentType</CODE> - <A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><CODE>AlignmentType</CODE></A>\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setFragment(boolean)"><!-- --></A><H3>\r
-setFragment</H3>\r
-<PRE>\r
-public final void <B>setFragment</B>(boolean&nbsp;isFragment)</PRE>\r
-<DL>\r
-<DD>Set to true if the EXI input stream is an XML fragment (a non-compliant
- XML document with multiple root elements).\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>isFragment</CODE> - true if the EXI input stream is an XML fragment.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setPreserveLexicalValues(boolean)"><!-- --></A><H3>\r
-setPreserveLexicalValues</H3>\r
-<PRE>\r
-public final void <B>setPreserveLexicalValues</B>(boolean&nbsp;preserveLexicalValues)\r
-                                    throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set to true if the EXI input stream was compiled with the Preserve Lexical
- Values set to true. The original strings, rather than logical XML
- equivalents, are restored in the XML output stream.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>preserveLexicalValues</CODE> - set to true if the EXI input stream was compiled with 
- Preserve Lexical Values set to true.\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setEXISchemaResolver(org.openexi.proc.EXISchemaResolver)"><!-- --></A><H3>\r
-setEXISchemaResolver</H3>\r
-<PRE>\r
-public final void <B>setEXISchemaResolver</B>(<A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc">EXISchemaResolver</A>&nbsp;schemaResolver)</PRE>\r
-<DL>\r
-<DD>Set the EXISchemaResolver to retrieve the schema needed to decode the 
- current EXI stream.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>schemaResolver</CODE> - <A HREF="../../../org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><CODE>EXISchemaResolver</CODE></A></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><!-- --></A><H3>\r
-setDatatypeRepresentationMap</H3>\r
-<PRE>\r
-public final void <B>setDatatypeRepresentationMap</B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
-                                               int&nbsp;n_bindings)\r
-                                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set a datatype representation map.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>dtrm</CODE> - a sequence of pairs of datatype qname and datatype representation qname<DD><CODE>n_bindings</CODE> - the number of qname pairs\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setBlockSize(int)"><!-- --></A><H3>\r
-setBlockSize</H3>\r
-<PRE>\r
-public final void <B>setBlockSize</B>(int&nbsp;blockSize)\r
-                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire EXI stream. Reducing the block size 
- can improve performance for devices with limited dynamic memory. 
- Default is 1,000,000 items (not 1MB, but 1,000,000 complete Attribute 
- and Element values). Block size is only used when the EXI stream is
- encoded with EXI-compression.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>blockSize</CODE> - number of values in each processing block. Default is 1,000,000.\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setValueMaxLength(int)"><!-- --></A><H3>\r
-setValueMaxLength</H3>\r
-<PRE>\r
-public final void <B>setValueMaxLength</B>(int&nbsp;valueMaxLength)</PRE>\r
-<DL>\r
-<DD>Set the maximum length of a string that will be stored for reuse in the
- String Table. By default, there is no maximum length. However, in data
- sets that have long, unique strings of information, you can improve
- performance by limiting the size to the length of strings that are more
- likely to appear more than once.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>valueMaxLength</CODE> - maximum length of entries in the String Table.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setValuePartitionCapacity(int)"><!-- --></A><H3>\r
-setValuePartitionCapacity</H3>\r
-<PRE>\r
-public final void <B>setValuePartitionCapacity</B>(int&nbsp;valuePartitionCapacity)</PRE>\r
-<DL>\r
-<DD>Set the maximum number of values in the String Table. By default, there
- is no limit. If the target device has limited dynamic memory, limiting 
- the number of entries in the String Table can improve performance and
- reduce the likelihood that you will exceed memory capacity.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>valuePartitionCapacity</CODE> - maximum number of entries in the String Table</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setLexicalHandler(org.xml.sax.ext.LexicalHandler)"><!-- --></A><H3>\r
-setLexicalHandler</H3>\r
-<PRE>\r
-public void <B>setLexicalHandler</B>(org.xml.sax.ext.LexicalHandler&nbsp;lexicalHandler)</PRE>\r
-<DL>\r
-<DD>Set a SAX lexical handler to receive SAX lexical events.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>lexicalHandler</CODE> - SAX lexical handler</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/EXIReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXIReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/ReaderSupport.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/ReaderSupport.html
deleted file mode 100644 (file)
index 7d392bb..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-ReaderSupport\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.sax.ReaderSupport class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="ReaderSupport";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/ReaderSupport.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="ReaderSupport.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.sax</FONT>\r
-<BR>\r
-Class ReaderSupport</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.sax.ReaderSupport</B>\r
-</PRE>\r
-<DL>\r
-<DT><B>All Implemented Interfaces:</B> <DD>org.xml.sax.Attributes</DD>\r
-</DL>\r
-<DL>\r
-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A></DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public abstract class <B>ReaderSupport</B><DT>extends java.lang.Object<DT>implements org.xml.sax.Attributes</DL>\r
-</PRE>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;org.xml.sax.ContentHandler</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/ReaderSupport.html#getContentHandler()">getContentHandler</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the SAX content handler currently in use.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/ReaderSupport.html#setContentHandler(org.xml.sax.ContentHandler)">setContentHandler</A></B>(org.xml.sax.ContentHandler&nbsp;contentHandler)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a SAX content handler to receive SAX events.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/ReaderSupport.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)">setGrammarCache</A></B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the GrammarCache used in parsing EXI streams.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.Attributes"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.Attributes</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>getIndex, getIndex, getLength, getLocalName, getQName, getType, getType, getType, getURI, getValue, getValue, getValue</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="setContentHandler(org.xml.sax.ContentHandler)"><!-- --></A><H3>\r
-setContentHandler</H3>\r
-<PRE>\r
-public final void <B>setContentHandler</B>(org.xml.sax.ContentHandler&nbsp;contentHandler)</PRE>\r
-<DL>\r
-<DD>Set a SAX content handler to receive SAX events.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>contentHandler</CODE> - SAX content handler</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getContentHandler()"><!-- --></A><H3>\r
-getContentHandler</H3>\r
-<PRE>\r
-public final org.xml.sax.ContentHandler <B>getContentHandler</B>()</PRE>\r
-<DL>\r
-<DD>Get the SAX content handler currently in use.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>ContentHandler SAX content handler.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><!-- --></A><H3>\r
-setGrammarCache</H3>\r
-<PRE>\r
-public void <B>setGrammarCache</B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)\r
-                     throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the GrammarCache used in parsing EXI streams.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>grammarCache</CODE> - <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><CODE>GrammarCache</CODE></A>\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/ReaderSupport.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="ReaderSupport.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/SAXTransmogrifier.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/SAXTransmogrifier.html
deleted file mode 100644 (file)
index 15e2e7d..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-SAXTransmogrifier\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.sax.SAXTransmogrifier interface">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="SAXTransmogrifier";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/SAXTransmogrifier.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="SAXTransmogrifier.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.sax</FONT>\r
-<BR>\r
-Interface SAXTransmogrifier</H2>\r
-<DL>\r
-<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler</DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public interface <B>SAXTransmogrifier</B><DT>extends org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, <A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A></DL>\r
-</PRE>\r
-\r
-<P>\r
-Applications can directly feed SAX events into a transmogrifier through SAXTransmogrifier.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/SAXTransmogrifier.html#getGrammarCache()">getGrammarCache</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the GrammarCache that is in use by this SAXTransmogrifier.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.ContentHandler"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.ContentHandler</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>characters, endDocument, endElement, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.ext.LexicalHandler"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.ext.LexicalHandler</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>comment, endCDATA, endDTD, endEntity, startCDATA, startDTD, startEntity</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.openexi.sax.BinaryDataHandler"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.openexi.sax.<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A></B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><A HREF="../../../org/openexi/sax/BinaryDataHandler.html#binaryData(byte[], int, int, org.openexi.proc.io.BinaryDataSink)">binaryData</A>, <A HREF="../../../org/openexi/sax/BinaryDataHandler.html#endBinaryData(org.openexi.proc.io.BinaryDataSink)">endBinaryData</A>, <A HREF="../../../org/openexi/sax/BinaryDataHandler.html#startBinaryData(long)">startBinaryData</A></CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="getGrammarCache()"><!-- --></A><H3>\r
-getGrammarCache</H3>\r
-<PRE>\r
-<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A> <B>getGrammarCache</B>()</PRE>\r
-<DL>\r
-<DD>Returns the GrammarCache that is in use by this SAXTransmogrifier.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>a GrammarCache</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/SAXTransmogrifier.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="SAXTransmogrifier.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/Transmogrifier.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/Transmogrifier.html
deleted file mode 100644 (file)
index b857aab..0000000
+++ /dev/null
@@ -1,735 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Transmogrifier\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.sax.Transmogrifier class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Transmogrifier";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/Transmogrifier.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="Transmogrifier.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.sax</FONT>\r
-<BR>\r
-Class Transmogrifier</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.sax.Transmogrifier</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>Transmogrifier</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-The Transmogrifier converts an XML stream to an EXI stream.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#Transmogrifier()">Transmogrifier</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an instance of the Transmogrifier with a default SAX parser.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#Transmogrifier(javax.xml.parsers.SAXParserFactory)">Transmogrifier</A></B>(javax.xml.parsers.SAXParserFactory&nbsp;saxParserFactory)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an instance of the Transmogrifier, specifying the SAXParserFactory
- from which to create the SAX parser.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#encode(org.xml.sax.InputSource)">encode</A></B>(org.xml.sax.InputSource&nbsp;is)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses XML input source and converts it to an EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#getGrammarCache()">getGrammarCache</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the GrammarCache that was previously set.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#getSAXTransmogrifier()">getSAXTransmogrifier</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the SAXTransmogrifier, which implements both the ContentHandler
- and LexicalHandler.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setAlignmentType(org.openexi.proc.common.AlignmentType)">setAlignmentType</A></B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the bit alignment style for the encoded EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setBlockSize(int)">setBlockSize</A></B>(int&nbsp;blockSize)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire XML stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)">setDatatypeRepresentationMap</A></B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
-                             int&nbsp;n_bindings)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a datatype representation map (DTRM).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setEntityResolver(org.xml.sax.EntityResolver)">setEntityResolver</A></B>(org.xml.sax.EntityResolver&nbsp;entityResolver)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an external SAX entity resolver.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setFragment(boolean)">setFragment</A></B>(boolean&nbsp;isFragment)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to true if the XML input stream is an XML fragment (a non-compliant
- XML document with multiple root elements).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache)">setGrammarCache</A></B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the GrammarCache used in transmogrifying XML data to EXI.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setGrammarCache(org.openexi.proc.grammars.GrammarCache, org.openexi.proc.common.SchemaId)">setGrammarCache</A></B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache,\r
-                org.openexi.proc.common.SchemaId&nbsp;schemaId)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the GrammarCache to be used in encoding XML streams into EXI streams 
- by the transmogrifier.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setOutputCookie(boolean)">setOutputCookie</A></B>(boolean&nbsp;outputCookie)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tells the encoder whether to or not to start the stream by
- adding an EXI cookie.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setOutputOptions(org.openexi.proc.HeaderOptionsOutputType)">setOutputOptions</A></B>(<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&nbsp;outputOptions)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the header output options.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setOutputStream(java.io.OutputStream)">setOutputStream</A></B>(java.io.OutputStream&nbsp;ostream)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an output stream to which encoded streams are written.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setPreserveLexicalValues(boolean)">setPreserveLexicalValues</A></B>(boolean&nbsp;preserveLexicalValues)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to <i>true</i> to preserve the original string values from the XML
- stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setPreserveWhitespaces(boolean)">setPreserveWhitespaces</A></B>(boolean&nbsp;preserveWhitespaces)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to true to preserve whitespace (for example, spaces, tabs, and
- line breaks) in the encoded EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setResolveExternalGeneralEntities(boolean)">setResolveExternalGeneralEntities</A></B>(boolean&nbsp;resolveExternalGeneralEntities)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the way a Transmogrifier handles external general entities.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setValueMaxLength(int)">setValueMaxLength</A></B>(int&nbsp;valueMaxLength)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum length of a string that will be stored for reuse in the
- String Table.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/Transmogrifier.html#setValuePartitionCapacity(int)">setValuePartitionCapacity</A></B>(int&nbsp;valuePartitionCapacity)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the maximum number of values in the String Table.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="Transmogrifier()"><!-- --></A><H3>\r
-Transmogrifier</H3>\r
-<PRE>\r
-public <B>Transmogrifier</B>()\r
-               throws org.openexi.sax.TransmogrifierRuntimeException</PRE>\r
-<DL>\r
-<DD>Create an instance of the Transmogrifier with a default SAX parser.\r
-<P>\r
-<DL>\r
-\r
-<DT><B>Throws:</B>\r
-<DD><CODE><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></CODE>\r
-<DD><CODE>org.openexi.sax.TransmogrifierRuntimeException</CODE></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="Transmogrifier(javax.xml.parsers.SAXParserFactory)"><!-- --></A><H3>\r
-Transmogrifier</H3>\r
-<PRE>\r
-public <B>Transmogrifier</B>(javax.xml.parsers.SAXParserFactory&nbsp;saxParserFactory)\r
-               throws org.openexi.sax.TransmogrifierRuntimeException</PRE>\r
-<DL>\r
-<DD>Create an instance of the Transmogrifier, specifying the SAXParserFactory
- from which to create the SAX parser.\r
-<P>\r
-<DL>\r
-<DT><B>Parameters:</B><DD><CODE>saxParserFactory</CODE> - \r
-<DT><B>Throws:</B>\r
-<DD><CODE><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></CODE>\r
-<DD><CODE>org.openexi.sax.TransmogrifierRuntimeException</CODE></DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="setResolveExternalGeneralEntities(boolean)"><!-- --></A><H3>\r
-setResolveExternalGeneralEntities</H3>\r
-<PRE>\r
-public void <B>setResolveExternalGeneralEntities</B>(boolean&nbsp;resolveExternalGeneralEntities)\r
-                                       throws <A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></PRE>\r
-<DL>\r
-<DD>Change the way a Transmogrifier handles external general entities. When the value
- of resolveExternalGeneralEntities is set to true, a Transmogrifier will try to 
- resolve external general entities. Otherwise, external general entities will not
- be resolved.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>resolveExternalGeneralEntities</CODE> - \r
-<DT><B>Throws:</B>\r
-<DD><CODE><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></CODE> - Thrown when the underlying XMLReader does not 
- support the specified behavior.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setOutputStream(java.io.OutputStream)"><!-- --></A><H3>\r
-setOutputStream</H3>\r
-<PRE>\r
-public final void <B>setOutputStream</B>(java.io.OutputStream&nbsp;ostream)</PRE>\r
-<DL>\r
-<DD>Set an output stream to which encoded streams are written.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>ostream</CODE> - output stream</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setAlignmentType(org.openexi.proc.common.AlignmentType)"><!-- --></A><H3>\r
-setAlignmentType</H3>\r
-<PRE>\r
-public final void <B>setAlignmentType</B>(<A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common">AlignmentType</A>&nbsp;alignmentType)\r
-                            throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the bit alignment style for the encoded EXI stream.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>alignmentType</CODE> - <A HREF="../../../org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><CODE>AlignmentType</CODE></A>. 
- Default is <i>bit-packed</i>.\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setFragment(boolean)"><!-- --></A><H3>\r
-setFragment</H3>\r
-<PRE>\r
-public final void <B>setFragment</B>(boolean&nbsp;isFragment)</PRE>\r
-<DL>\r
-<DD>Set to true if the XML input stream is an XML fragment (a non-compliant
- XML document with multiple root elements).\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>isFragment</CODE> - true if the XML input stream is an XML fragment.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setBlockSize(int)"><!-- --></A><H3>\r
-setBlockSize</H3>\r
-<PRE>\r
-public final void <B>setBlockSize</B>(int&nbsp;blockSize)\r
-                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the size, in number of values, of the information that will be 
- processed as a chunk of the entire XML stream. Reducing the block size 
- can improve performance for devices with limited dynamic memory. 
- Default is 1,000,000 items (not 1MB, but 1,000,000 complete Attribute 
- and Element values). Block size is only used when the EXI stream is
- encoded with EXI-compression.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>blockSize</CODE> - number of values in each processing block. Default is 1,000,000.\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setValueMaxLength(int)"><!-- --></A><H3>\r
-setValueMaxLength</H3>\r
-<PRE>\r
-public final void <B>setValueMaxLength</B>(int&nbsp;valueMaxLength)</PRE>\r
-<DL>\r
-<DD>Set the maximum length of a string that will be stored for reuse in the
- String Table. By default, there is no maximum length. However, in data
- sets that have long, unique strings of information, you can improve
- performance by limiting the size to the length of strings that are more
- likely to appear more than once.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>valueMaxLength</CODE> - maximum length of entries in the String Table.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setValuePartitionCapacity(int)"><!-- --></A><H3>\r
-setValuePartitionCapacity</H3>\r
-<PRE>\r
-public final void <B>setValuePartitionCapacity</B>(int&nbsp;valuePartitionCapacity)</PRE>\r
-<DL>\r
-<DD>Set the maximum number of values in the String Table. By default, there
- is no limit. If the target device has limited dynamic memory, limiting 
- the number of entries in the String Table can improve performance and
- reduce the likelihood that you will exceed memory capacity.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>valuePartitionCapacity</CODE> - maximum number of entries in the String Table</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setPreserveLexicalValues(boolean)"><!-- --></A><H3>\r
-setPreserveLexicalValues</H3>\r
-<PRE>\r
-public final void <B>setPreserveLexicalValues</B>(boolean&nbsp;preserveLexicalValues)\r
-                                    throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set to <i>true</i> to preserve the original string values from the XML
- stream. For example, a date string might be converted to a different
- format when interpreted by the Transmogrifier. Preserving the lexical values
- ensures that the identical strings are restored, and not just their 
- logical values.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>preserveLexicalValues</CODE> - <i>true</i> to keep original strings intact\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setGrammarCache(org.openexi.proc.grammars.GrammarCache)"><!-- --></A><H3>\r
-setGrammarCache</H3>\r
-<PRE>\r
-public final void <B>setGrammarCache</B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache)\r
-                           throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the GrammarCache used in transmogrifying XML data to EXI.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>grammarCache</CODE> - <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><CODE>GrammarCache</CODE></A>\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setGrammarCache(org.openexi.proc.grammars.GrammarCache, org.openexi.proc.common.SchemaId)"><!-- --></A><H3>\r
-setGrammarCache</H3>\r
-<PRE>\r
-public final void <B>setGrammarCache</B>(<A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A>&nbsp;grammarCache,\r
-                                  org.openexi.proc.common.SchemaId&nbsp;schemaId)\r
-                           throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the GrammarCache to be used in encoding XML streams into EXI streams 
- by the transmogrifier. 
- The SchemaId contains the string that is written in the header when
- <i>HeaderOptionsOutputType.all</i> is set.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>grammarCache</CODE> - <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><CODE>GrammarCache</CODE></A><DD><CODE>schemaId</CODE> - \r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getGrammarCache()"><!-- --></A><H3>\r
-getGrammarCache</H3>\r
-<PRE>\r
-public final <A HREF="../../../org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars">GrammarCache</A> <B>getGrammarCache</B>()</PRE>\r
-<DL>\r
-<DD>Returns the GrammarCache that was previously set.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>a GrammarCache</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setDatatypeRepresentationMap(org.openexi.proc.common.QName[], int)"><!-- --></A><H3>\r
-setDatatypeRepresentationMap</H3>\r
-<PRE>\r
-public final void <B>setDatatypeRepresentationMap</B>(<A HREF="../../../org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common">QName</A>[]&nbsp;dtrm,\r
-                                               int&nbsp;n_bindings)\r
-                                        throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set a datatype representation map (DTRM). The DTRM allows you to remap
- XMLSchema datatypes to EXI datatypes other than their default equivalents.
- The map is created using a sequence of Qualified Name pairs that identify
- a datatype definition in the XMLSchema namespace followed by the new 
- corresponding datatype mapping in the EXI namespace.
- <br /><br />
- For example, the following lines map the boolean datatype from XMLSchema 
- to the integer datatype in EXI.
- <pre>
-   QName q1 = new QName("xsd:boolean","http://www.w3.org/2001/XMLSchema");
-   QName q2 = new QName("exi:integer","http://www.w3.org/2009/exi");
-   QName[] dtrm = new QName[2];
-   dtrm = {q1, q2}; // Each mapping requires 2 qualified names.
-   transmogrifierInstance.setDatatypeRepresentationMap(dtrm, 1); // The array, and the number of pairs (1).
- </pre>\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>dtrm</CODE> - a sequence of pairs of datatype QName and datatype representation QName<DD><CODE>n_bindings</CODE> - the number of QName pairs\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setEntityResolver(org.xml.sax.EntityResolver)"><!-- --></A><H3>\r
-setEntityResolver</H3>\r
-<PRE>\r
-public final void <B>setEntityResolver</B>(org.xml.sax.EntityResolver&nbsp;entityResolver)</PRE>\r
-<DL>\r
-<DD>Set an external SAX entity resolver.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>entityResolver</CODE> - <CODE>EntityResolver</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setOutputCookie(boolean)"><!-- --></A><H3>\r
-setOutputCookie</H3>\r
-<PRE>\r
-public final void <B>setOutputCookie</B>(boolean&nbsp;outputCookie)</PRE>\r
-<DL>\r
-<DD>Tells the encoder whether to or not to start the stream by
- adding an EXI cookie.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>outputCookie</CODE> - <i>true</i> to include the EXI cookie</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setOutputOptions(org.openexi.proc.HeaderOptionsOutputType)"><!-- --></A><H3>\r
-setOutputOptions</H3>\r
-<PRE>\r
-public final void <B>setOutputOptions</B>(<A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc">HeaderOptionsOutputType</A>&nbsp;outputOptions)\r
-                            throws org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Set the header output options. Choices are set using the 
- <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><CODE>HeaderOptionsOutputType</CODE></A> enumeration.
- Options are <i>all, lessSchemaID</i> (that is, all values
- except for the SchemaId), or <i>none.</i>\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>outputOptions</CODE> - <A HREF="../../../org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><CODE>HeaderOptionsOutputType</CODE></A>\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setPreserveWhitespaces(boolean)"><!-- --></A><H3>\r
-setPreserveWhitespaces</H3>\r
-<PRE>\r
-public final void <B>setPreserveWhitespaces</B>(boolean&nbsp;preserveWhitespaces)</PRE>\r
-<DL>\r
-<DD>Set to true to preserve whitespace (for example, spaces, tabs, and
- line breaks) in the encoded EXI stream. By default, non-essential whitespace
- is removed from the encoded stream.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>preserveWhitespaces</CODE> - <i>true</i> to retain whitespace in the encoded EXI stream</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="encode(org.xml.sax.InputSource)"><!-- --></A><H3>\r
-encode</H3>\r
-<PRE>\r
-public void <B>encode</B>(org.xml.sax.InputSource&nbsp;is)\r
-            throws <A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A>,\r
-                   java.io.IOException</PRE>\r
-<DL>\r
-<DD>Parses XML input source and converts it to an EXI stream.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>is</CODE> - XML input source\r
-<DT><B>Throws:</B>\r
-<DD><CODE><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></CODE>\r
-<DD><CODE>java.io.IOException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getSAXTransmogrifier()"><!-- --></A><H3>\r
-getSAXTransmogrifier</H3>\r
-<PRE>\r
-public <A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A> <B>getSAXTransmogrifier</B>()</PRE>\r
-<DL>\r
-<DD>Returns the SAXTransmogrifier, which implements both the ContentHandler
- and LexicalHandler. SAX programmers can connect the SAXTransmogrifier to
- their favorite XML Parser to convert SAX events into an EXI stream.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/Transmogrifier.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="Transmogrifier.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/TransmogrifierException.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/TransmogrifierException.html
deleted file mode 100644 (file)
index 55e1e1f..0000000
+++ /dev/null
@@ -1,566 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-TransmogrifierException\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.sax.TransmogrifierException class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="TransmogrifierException";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/TransmogrifierException.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="TransmogrifierException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.sax</FONT>\r
-<BR>\r
-Class TransmogrifierException</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable\r
-      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception\r
-          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.sax.TransmogrifierException</B>\r
-</PRE>\r
-<DL>\r
-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>TransmogrifierException</B><DT>extends java.lang.Exception</DL>\r
-</PRE>\r
-\r
-<P>\r
-Exception handler for the Transmogrifier.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#org.openexi.sax.TransmogrifierException">Serialized Form</A><!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#PREFIX_BOUND_TO_ANOTHER_NAMESPACE">PREFIX_BOUND_TO_ANOTHER_NAMESPACE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prefix is bound to another namespace.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#PREFIX_NOT_BOUND">PREFIX_NOT_BOUND</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prefix is not bound.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#SAX_ERROR">SAX_ERROR</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAX error reported by XML parser.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#SCRIBER_ERROR">SCRIBER_ERROR</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Errors reported by Scriber.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ATTR">UNEXPECTED_ATTR</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Attribute.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_BINARY_VALUE">UNEXPECTED_BINARY_VALUE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Binary value.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_CHARS">UNEXPECTED_CHARS</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Character Sequence.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ED">UNEXPECTED_ED</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected End of Document event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_ELEM">UNEXPECTED_ELEM</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Element.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_END_ELEM">UNEXPECTED_END_ELEM</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected End of Element event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNEXPECTED_SD">UNEXPECTED_SD</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unexpected Start of Document event.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#UNHANDLED_SAXPARSER_FEATURE">UNHANDLED_SAXPARSER_FEATURE</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unhandled SAX parser feature.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#getCode()">getCode</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a code that represents the type of the exception.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.Exception</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#getException()">getException</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an Exception object.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;org.xml.sax.Locator</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#getLocator()">getLocator</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the locator that is associated with this compilation error.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html#getMessage()">getMessage</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a message that describes the exception.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="UNEXPECTED_ELEM"><!-- --></A><H3>\r
-UNEXPECTED_ELEM</H3>\r
-<PRE>\r
-public static final int <B>UNEXPECTED_ELEM</B></PRE>\r
-<DL>\r
-<DD>Unexpected Element.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_ELEM">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="UNEXPECTED_ATTR"><!-- --></A><H3>\r
-UNEXPECTED_ATTR</H3>\r
-<PRE>\r
-public static final int <B>UNEXPECTED_ATTR</B></PRE>\r
-<DL>\r
-<DD>Unexpected Attribute.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_ATTR">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="UNEXPECTED_CHARS"><!-- --></A><H3>\r
-UNEXPECTED_CHARS</H3>\r
-<PRE>\r
-public static final int <B>UNEXPECTED_CHARS</B></PRE>\r
-<DL>\r
-<DD>Unexpected Character Sequence.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_CHARS">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="UNEXPECTED_BINARY_VALUE"><!-- --></A><H3>\r
-UNEXPECTED_BINARY_VALUE</H3>\r
-<PRE>\r
-public static final int <B>UNEXPECTED_BINARY_VALUE</B></PRE>\r
-<DL>\r
-<DD>Unexpected Binary value.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_BINARY_VALUE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="UNHANDLED_SAXPARSER_FEATURE"><!-- --></A><H3>\r
-UNHANDLED_SAXPARSER_FEATURE</H3>\r
-<PRE>\r
-public static final int <B>UNHANDLED_SAXPARSER_FEATURE</B></PRE>\r
-<DL>\r
-<DD>Unhandled SAX parser feature.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNHANDLED_SAXPARSER_FEATURE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="SAX_ERROR"><!-- --></A><H3>\r
-SAX_ERROR</H3>\r
-<PRE>\r
-public static final int <B>SAX_ERROR</B></PRE>\r
-<DL>\r
-<DD>SAX error reported by XML parser.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.SAX_ERROR">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="UNEXPECTED_END_ELEM"><!-- --></A><H3>\r
-UNEXPECTED_END_ELEM</H3>\r
-<PRE>\r
-public static final int <B>UNEXPECTED_END_ELEM</B></PRE>\r
-<DL>\r
-<DD>Unexpected End of Element event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_END_ELEM">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="UNEXPECTED_ED"><!-- --></A><H3>\r
-UNEXPECTED_ED</H3>\r
-<PRE>\r
-public static final int <B>UNEXPECTED_ED</B></PRE>\r
-<DL>\r
-<DD>Unexpected End of Document event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_ED">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="UNEXPECTED_SD"><!-- --></A><H3>\r
-UNEXPECTED_SD</H3>\r
-<PRE>\r
-public static final int <B>UNEXPECTED_SD</B></PRE>\r
-<DL>\r
-<DD>Unexpected Start of Document event.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.UNEXPECTED_SD">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="PREFIX_NOT_BOUND"><!-- --></A><H3>\r
-PREFIX_NOT_BOUND</H3>\r
-<PRE>\r
-public static final int <B>PREFIX_NOT_BOUND</B></PRE>\r
-<DL>\r
-<DD>Prefix is not bound.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.PREFIX_NOT_BOUND">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="PREFIX_BOUND_TO_ANOTHER_NAMESPACE"><!-- --></A><H3>\r
-PREFIX_BOUND_TO_ANOTHER_NAMESPACE</H3>\r
-<PRE>\r
-public static final int <B>PREFIX_BOUND_TO_ANOTHER_NAMESPACE</B></PRE>\r
-<DL>\r
-<DD>Prefix is bound to another namespace.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.PREFIX_BOUND_TO_ANOTHER_NAMESPACE">Constant Field Values</A></DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="SCRIBER_ERROR"><!-- --></A><H3>\r
-SCRIBER_ERROR</H3>\r
-<PRE>\r
-public static final int <B>SCRIBER_ERROR</B></PRE>\r
-<DL>\r
-<DD>Errors reported by Scriber.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.sax.TransmogrifierException.SCRIBER_ERROR">Constant Field Values</A></DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="getCode()"><!-- --></A><H3>\r
-getCode</H3>\r
-<PRE>\r
-public int <B>getCode</B>()</PRE>\r
-<DL>\r
-<DD>Returns a code that represents the type of the exception.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>error code</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getMessage()"><!-- --></A><H3>\r
-getMessage</H3>\r
-<PRE>\r
-public java.lang.String <B>getMessage</B>()</PRE>\r
-<DL>\r
-<DD>Returns a message that describes the exception.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Overrides:</B><DD><CODE>getMessage</CODE> in class <CODE>java.lang.Throwable</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>error message</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getException()"><!-- --></A><H3>\r
-getException</H3>\r
-<PRE>\r
-public java.lang.Exception <B>getException</B>()</PRE>\r
-<DL>\r
-<DD>Returns an Exception object.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>the error as an Exception instance</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getLocator()"><!-- --></A><H3>\r
-getLocator</H3>\r
-<PRE>\r
-public org.xml.sax.Locator <B>getLocator</B>()</PRE>\r
-<DL>\r
-<DD>Returns the locator that is associated with this compilation error.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>a Locator if available, otherwise null</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/TransmogrifierException.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="TransmogrifierException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-frame.html
deleted file mode 100644 (file)
index 22e45d6..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.sax\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.sax package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameTitleFont">\r
-<A HREF="../../../org/openexi/sax/package-summary.html" target="classFrame">org.openexi.sax</A></FONT>\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Interfaces</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="BinaryDataHandler.html" title="interface in org.openexi.sax" target="classFrame"><I>BinaryDataHandler</I></A>\r
-<BR>\r
-<A HREF="SAXTransmogrifier.html" title="interface in org.openexi.sax" target="classFrame"><I>SAXTransmogrifier</I></A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Classes</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="EXIReader.html" title="class in org.openexi.sax" target="classFrame">EXIReader</A>\r
-<BR>\r
-<A HREF="ReaderSupport.html" title="class in org.openexi.sax" target="classFrame">ReaderSupport</A>\r
-<BR>\r
-<A HREF="Transmogrifier.html" title="class in org.openexi.sax" target="classFrame">Transmogrifier</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Exceptions</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="TransmogrifierException.html" title="class in org.openexi.sax" target="classFrame">TransmogrifierException</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-summary.html
deleted file mode 100644 (file)
index b0e7208..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.sax\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.sax package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.sax";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/proc/io/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/schema/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<H2>\r
-Package org.openexi.sax\r
-</H2>\r
-\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The SAX package contains the <code>Transmogrifier</code>, which encodes an XML file to an EXI stream, and the <code>EXIReader</code>, which restores an EXI stream to its logical XML equivalent.\r
-<P>\r
-<B>See:</B>\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Interface Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A></B></TD>\r
-<TD>&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax">SAXTransmogrifier</A></B></TD>\r
-<TD>Applications can directly feed SAX events into a transmogrifier through SAXTransmogrifier.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax">EXIReader</A></B></TD>\r
-<TD>EXIReader implements the SAX XMLReader to provide a convenient and 
- familiar interface for decoding an EXI stream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax">ReaderSupport</A></B></TD>\r
-<TD>&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax">Transmogrifier</A></B></TD>\r
-<TD>The Transmogrifier converts an XML stream to an EXI stream.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Exception Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">TransmogrifierException</A></B></TD>\r
-<TD>Exception handler for the Transmogrifier.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-<A NAME="package_description"><!-- --></A><H2>\r
-Package org.openexi.sax Description\r
-</H2>\r
-\r
-<P>\r
-<table>\r
-<tr valign="top" cellpadding="3" border="0">\r
-<td>\r
-<p>The SAX package contains the <code>Transmogrifier</code>, which encodes an XML file to an EXI stream, and the <code>EXIReader</code>, which restores an EXI stream to its logical XML equivalent. These classes are wrappers for the <code>Scriber</code> and <code>EXIDecoder</code>, respectively, and are primarily meant to provide access to EXI using familiar SAX syntax.\r
-</p>\r
-</td>\r
-<td width="385">\r
-<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_SAX.PNG" width="375" height="280" />\r
-</td>\r
-</tr>\r
-</table>\r
-</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/proc/io/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/schema/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/sax/package-tree.html
deleted file mode 100644 (file)
index f4184bf..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.sax Class Hierarchy\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.sax Class Hierarchy";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/proc/io/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/schema/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-Hierarchy For Package org.openexi.sax\r
-</H2>\r
-</CENTER>\r
-<DL>\r
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>\r
-<HR>\r
-<H2>\r
-Class Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>ReaderSupport</B></A> (implements org.xml.sax.Attributes)\r
-<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>EXIReader</B></A> (implements org.xml.sax.XMLReader)\r
-</UL>\r
-<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)\r
-<UL>\r
-<LI TYPE="circle">java.lang.Exception<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>TransmogrifierException</B></A></UL>\r
-</UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>Transmogrifier</B></A></UL>\r
-</UL>\r
-<H2>\r
-Interface Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>BinaryDataHandler</B></A><UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)\r
-</UL>\r
-<LI TYPE="circle">org.xml.sax.ContentHandler<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.openexi.sax.<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ext.LexicalHandler)\r
-</UL>\r
-<LI TYPE="circle">org.xml.sax.ext.LexicalHandler<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="../../../org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.openexi.sax.<A HREF="../../../org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ContentHandler)\r
-</UL>\r
-</UL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/proc/io/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/schema/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/sax/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/Characters.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/Characters.html
deleted file mode 100644 (file)
index 022f5be..0000000
+++ /dev/null
@@ -1,486 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Characters\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.schema.Characters class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Characters";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/Characters.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="Characters.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.schema</FONT>\r
-<BR>\r
-Class Characters</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.schema.Characters</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>Characters</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;char[]</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#characters">characters</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;<A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#CHARACTERS_EMPTY">CHARACTERS_EMPTY</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#isVolatile">isVolatile</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#length">length</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#startIndex">startIndex</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#ucsCount">ucsCount</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#Characters(char[], int, int, boolean)">Characters</A></B>(char[]&nbsp;characters,\r
-           int&nbsp;startIndex,\r
-           int&nbsp;length,\r
-           boolean&nbsp;isVolatile)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;object)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#hashCode()">hashCode</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#indexOf(char)">indexOf</A></B>(char&nbsp;c)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#makeString()">makeString</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#substring(int, int)">substring</A></B>(int&nbsp;beginIndex,\r
-          int&nbsp;endIndex)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/Characters.html#turnPermanent()">turnPermanent</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>getClass, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="isVolatile"><!-- --></A><H3>\r
-isVolatile</H3>\r
-<PRE>\r
-public boolean <B>isVolatile</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="characters"><!-- --></A><H3>\r
-characters</H3>\r
-<PRE>\r
-public char[] <B>characters</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="startIndex"><!-- --></A><H3>\r
-startIndex</H3>\r
-<PRE>\r
-public int <B>startIndex</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="length"><!-- --></A><H3>\r
-length</H3>\r
-<PRE>\r
-public final int <B>length</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="ucsCount"><!-- --></A><H3>\r
-ucsCount</H3>\r
-<PRE>\r
-public final int <B>ucsCount</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="CHARACTERS_EMPTY"><!-- --></A><H3>\r
-CHARACTERS_EMPTY</H3>\r
-<PRE>\r
-public static final <A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A> <B>CHARACTERS_EMPTY</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="Characters(char[], int, int, boolean)"><!-- --></A><H3>\r
-Characters</H3>\r
-<PRE>\r
-public <B>Characters</B>(char[]&nbsp;characters,\r
-                  int&nbsp;startIndex,\r
-                  int&nbsp;length,\r
-                  boolean&nbsp;isVolatile)</PRE>\r
-<DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="turnPermanent()"><!-- --></A><H3>\r
-turnPermanent</H3>\r
-<PRE>\r
-public void <B>turnPermanent</B>()</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="indexOf(char)"><!-- --></A><H3>\r
-indexOf</H3>\r
-<PRE>\r
-public int <B>indexOf</B>(char&nbsp;c)</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="substring(int, int)"><!-- --></A><H3>\r
-substring</H3>\r
-<PRE>\r
-public java.lang.String <B>substring</B>(int&nbsp;beginIndex,\r
-                                  int&nbsp;endIndex)</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="hashCode()"><!-- --></A><H3>\r
-hashCode</H3>\r
-<PRE>\r
-public int <B>hashCode</B>()</PRE>\r
-<DL>\r
-<DD><DL>\r
-<DT><B>Overrides:</B><DD><CODE>hashCode</CODE> in class <CODE>java.lang.Object</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="equals(java.lang.Object)"><!-- --></A><H3>\r
-equals</H3>\r
-<PRE>\r
-public boolean <B>equals</B>(java.lang.Object&nbsp;object)</PRE>\r
-<DL>\r
-<DD><DL>\r
-<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="makeString()"><!-- --></A><H3>\r
-makeString</H3>\r
-<PRE>\r
-public java.lang.String <B>makeString</B>()</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/Characters.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="Characters.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EXISchema.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EXISchema.html
deleted file mode 100644 (file)
index f3c472e..0000000
+++ /dev/null
@@ -1,355 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXISchema\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.schema.EXISchema class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXISchema";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/EXISchema.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchema.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.schema</FONT>\r
-<BR>\r
-Class EXISchema</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.schema.EXISchema</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>EXISchema</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-EXISchema provides methods to read and write compiled EXI schemas.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;byte[]</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#ancestryIds">ancestryIds</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#_isSimpleType(int, int[])">_isSimpleType</A></B>(int&nbsp;tp,\r
-              int[]&nbsp;types)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;boolean</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#isSimpleType(int)">isSimpleType</A></B>(int&nbsp;tp)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#readIn(java.io.DataInputStream)">readIn</A></B>(java.io.DataInputStream&nbsp;in)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads an EXI Schema from a DataInputStream.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#writeOut(java.io.DataOutputStream)">writeOut</A></B>(java.io.DataOutputStream&nbsp;out)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes out a serialized EXISchema.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/EXISchema.html#writeXml(java.io.OutputStream, boolean)">writeXml</A></B>(java.io.OutputStream&nbsp;out,\r
-         boolean&nbsp;whole)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="ancestryIds"><!-- --></A><H3>\r
-ancestryIds</H3>\r
-<PRE>\r
-public transient byte[] <B>ancestryIds</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="isSimpleType(int)"><!-- --></A><H3>\r
-isSimpleType</H3>\r
-<PRE>\r
-public boolean <B>isSimpleType</B>(int&nbsp;tp)</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="_isSimpleType(int, int[])"><!-- --></A><H3>\r
-_isSimpleType</H3>\r
-<PRE>\r
-public static boolean <B>_isSimpleType</B>(int&nbsp;tp,\r
-                                    int[]&nbsp;types)</PRE>\r
-<DL>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="readIn(java.io.DataInputStream)"><!-- --></A><H3>\r
-readIn</H3>\r
-<PRE>\r
-public static <A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>readIn</B>(java.io.DataInputStream&nbsp;in)\r
-                        throws java.io.IOException,\r
-                               java.lang.ClassNotFoundException</PRE>\r
-<DL>\r
-<DD>Reads an EXI Schema from a DataInputStream.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>in</CODE> - DataInputStream containing a serialized EXISchema\r
-<DT><B>Returns:</B><DD><A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><CODE>EXISchema</CODE></A>\r
-<DT><B>Throws:</B>\r
-<DD><CODE>IOException,</CODE> - ClassNotFoundException\r
-<DD><CODE>java.io.IOException</CODE>\r
-<DD><CODE>java.lang.ClassNotFoundException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="writeOut(java.io.DataOutputStream)"><!-- --></A><H3>\r
-writeOut</H3>\r
-<PRE>\r
-public void <B>writeOut</B>(java.io.DataOutputStream&nbsp;out)\r
-              throws java.io.IOException</PRE>\r
-<DL>\r
-<DD>Writes out a serialized EXISchema.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>out</CODE> - DataOutputStream to receive the serialized EXISchema\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.io.IOException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="writeXml(java.io.OutputStream, boolean)"><!-- --></A><H3>\r
-writeXml</H3>\r
-<PRE>\r
-public void <B>writeXml</B>(java.io.OutputStream&nbsp;out,\r
-                     boolean&nbsp;whole)\r
-              throws java.io.IOException</PRE>\r
-<DL>\r
-<DD><DL>\r
-\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.io.IOException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/EXISchema.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchema.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EmptySchema.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/EmptySchema.html
deleted file mode 100644 (file)
index 2a932cc..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:57 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EmptySchema\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.schema.EmptySchema class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EmptySchema";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/EmptySchema.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EmptySchema.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.schema</FONT>\r
-<BR>\r
-Class EmptySchema</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.schema.EmptySchema</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>EmptySchema</B><DT>extends java.lang.Object</DL>\r
-</PRE>\r
-\r
-<P>\r
-EmptySchema provides an EXISchema that supports all datatypes inherent
- in XML Schema such as xsd:int and xsd:dateTime, but with no 
- user-specific definitions. This is to support the use of dynamic 
- datatype associations discovered within elements during processing.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/schema/EmptySchema.html#getEXISchema()">getEXISchema</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an EXISchema that supports all datatypes inherent in XML Schema.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="getEXISchema()"><!-- --></A><H3>\r
-getEXISchema</H3>\r
-<PRE>\r
-public static <A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>getEXISchema</B>()</PRE>\r
-<DL>\r
-<DD>Returns an EXISchema that supports all datatypes inherent in XML Schema.
- Calls to this method always return the same object.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/EmptySchema.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EmptySchema.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-frame.html
deleted file mode 100644 (file)
index 4fdd831..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.schema\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.schema package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameTitleFont">\r
-<A HREF="../../../org/openexi/schema/package-summary.html" target="classFrame">org.openexi.schema</A></FONT>\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Classes</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="Characters.html" title="class in org.openexi.schema" target="classFrame">Characters</A>\r
-<BR>\r
-<A HREF="EmptySchema.html" title="class in org.openexi.schema" target="classFrame">EmptySchema</A>\r
-<BR>\r
-<A HREF="EXISchema.html" title="class in org.openexi.schema" target="classFrame">EXISchema</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-summary.html
deleted file mode 100644 (file)
index 53242f2..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.schema\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.schema package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.schema";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<H2>\r
-Package org.openexi.schema\r
-</H2>\r
-\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The schema package contains classes that are used to represent XML Schema Documents (XSDs).\r
-<P>\r
-<B>See:</B>\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema">Characters</A></B></TD>\r
-<TD>&nbsp;</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema">EmptySchema</A></B></TD>\r
-<TD>EmptySchema provides an EXISchema that supports all datatypes inherent
- in XML Schema such as xsd:int and xsd:dateTime, but with no 
- user-specific definitions.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></B></TD>\r
-<TD>EXISchema provides methods to read and write compiled EXI schemas.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-<A NAME="package_description"><!-- --></A><H2>\r
-Package org.openexi.schema Description\r
-</H2>\r
-\r
-<P>\r
-<table>\r
-<tr valign="top" cellpadding="3" border="0">\r
-<td>\r
-<p>The schema package contains classes that are used to represent XML Schema Documents (XSDs). <code>EXISchema.writeOut</code> writes an EXISchema to a <code>DataOutputStream</code> (which is typically saved to disk). <code>EXISchema.readIn</code> returns an <code>EXISchema</code> from a <code>DataInputStream</code> (typically from a file on disk), saving the step of processing the schema at runtime.\r
-</p>\r
-<p>\r
-<code>EmptySchema</code> is used to create an explicit schema object with default settings. This is to enable the <code>EXIDecoder</code> and <code>Transmogrifier</code> to process element tags that have embedded datatype overrides.\r
-</td>\r
-<td width="385">\r
-<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_Schema.PNG" width="375" height="280" />\r
-</td>\r
-</tr>\r
-</table>\r
-</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/schema/package-tree.html
deleted file mode 100644 (file)
index dda7f62..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.schema Class Hierarchy\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.schema Class Hierarchy";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-Hierarchy For Package org.openexi.schema\r
-</H2>\r
-</CENTER>\r
-<DL>\r
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>\r
-<HR>\r
-<H2>\r
-Class Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">org.openexi.schema.<A HREF="../../../org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>Characters</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="../../../org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>EmptySchema</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>EXISchema</B></A></UL>\r
-</UL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/sax/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/package-tree.html"><B>NEXT</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/schema/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactory.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactory.html
deleted file mode 100644 (file)
index 7a95df8..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXISchemaFactory\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.scomp.EXISchemaFactory class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXISchemaFactory";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.scomp</FONT>\r
-<BR>\r
-Class EXISchemaFactory</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">EXISchemaStruct\r
-      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.scomp.EXISchemaFactory</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public class <B>EXISchemaFactory</B><DT>extends EXISchemaStruct</DL>\r
-</PRE>\r
-\r
-<P>\r
-EXISchemaFactory compiles XML Schema into an EXISchema instance.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html#EXISchemaFactory()">EXISchemaFactory</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html#compile(org.xml.sax.InputSource)">compile</A></B>(org.xml.sax.InputSource&nbsp;inputSource)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compile an XML Schema Document into an EXISchema.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html#setCompilerErrorHandler(org.openexi.scomp.EXISchemaFactoryErrorHandler)">setCompilerErrorHandler</A></B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>&nbsp;errorHandler)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an error handler to report any errors encountered during
- schema compilation.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html#setEntityResolver(org.openexi.scomp.EntityResolverEx)">setEntityResolver</A></B>(<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp">EntityResolverEx</A>&nbsp;entityResolver)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an entity resolver for use to resolve entities and schema documents.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="EXISchemaFactory()"><!-- --></A><H3>\r
-EXISchemaFactory</H3>\r
-<PRE>\r
-public <B>EXISchemaFactory</B>()</PRE>\r
-<DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="setCompilerErrorHandler(org.openexi.scomp.EXISchemaFactoryErrorHandler)"><!-- --></A><H3>\r
-setCompilerErrorHandler</H3>\r
-<PRE>\r
-public void <B>setCompilerErrorHandler</B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A>&nbsp;errorHandler)</PRE>\r
-<DL>\r
-<DD>Set an error handler to report any errors encountered during
- schema compilation.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>errorHandler</CODE> - Error handler</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="setEntityResolver(org.openexi.scomp.EntityResolverEx)"><!-- --></A><H3>\r
-setEntityResolver</H3>\r
-<PRE>\r
-public void <B>setEntityResolver</B>(<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp">EntityResolverEx</A>&nbsp;entityResolver)</PRE>\r
-<DL>\r
-<DD>Set an entity resolver for use to resolve entities and schema documents.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>entityResolverEx</CODE> - extended SAX entity resolver</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="compile(org.xml.sax.InputSource)"><!-- --></A><H3>\r
-compile</H3>\r
-<PRE>\r
-public final <A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>compile</B>(org.xml.sax.InputSource&nbsp;inputSource)\r
-                        throws java.io.IOException,\r
-                               <A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></PRE>\r
-<DL>\r
-<DD>Compile an XML Schema Document into an EXISchema.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>is</CODE> - XML Schema Document stream from an InputSource\r
-<DT><B>Returns:</B><DD>an EXISchema instance\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.io.IOException</CODE>\r
-<DD><CODE><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></CODE></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryErrorHandler.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryErrorHandler.html
deleted file mode 100644 (file)
index 48648e4..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXISchemaFactoryErrorHandler\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.scomp.EXISchemaFactoryErrorHandler interface">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXISchemaFactoryErrorHandler";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactoryErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaFactoryErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.scomp</FONT>\r
-<BR>\r
-Interface EXISchemaFactoryErrorHandler</H2>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public interface <B>EXISchemaFactoryErrorHandler</B></DL>\r
-</PRE>\r
-\r
-<P>\r
-This interface reports exceptions from EXISchemaFactory during schema 
- processing. Users of EXISchemaFactory need to provide an
- implementation of this interface to receive errors from EXISchemaFactory.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<DT><B>Author:</B></DT>\r
-  <DD>Dennis Dawson</DD>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html#error(org.openexi.scomp.EXISchemaFactoryException)">error</A></B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report an error found during schema processing.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html#fatalError(org.openexi.scomp.EXISchemaFactoryException)">fatalError</A></B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report a fatal error found during schema processing.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;void</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html#warning(org.openexi.scomp.EXISchemaFactoryException)">warning</A></B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report a warning found during schema processing.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="warning(org.openexi.scomp.EXISchemaFactoryException)"><!-- --></A><H3>\r
-warning</H3>\r
-<PRE>\r
-void <B>warning</B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)\r
-             throws <A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></PRE>\r
-<DL>\r
-<DD>Report a warning found during schema processing.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>exc</CODE> - warning found\r
-<DT><B>Throws:</B>\r
-<DD><CODE><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></CODE> - at the discretion of the application</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="error(org.openexi.scomp.EXISchemaFactoryException)"><!-- --></A><H3>\r
-error</H3>\r
-<PRE>\r
-void <B>error</B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)\r
-           throws <A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></PRE>\r
-<DL>\r
-<DD>Report an error found during schema processing. Note that errors are
- recoverable only as far as the schema processor is concerned. They might
- be fatal at the application level.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>exc</CODE> - error found\r
-<DT><B>Throws:</B>\r
-<DD><CODE><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></CODE> - at the discretion of the application</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="fatalError(org.openexi.scomp.EXISchemaFactoryException)"><!-- --></A><H3>\r
-fatalError</H3>\r
-<PRE>\r
-void <B>fatalError</B>(<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A>&nbsp;exc)\r
-                throws <A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></PRE>\r
-<DL>\r
-<DD>Report a fatal error found during schema processing.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>exc</CODE> - fatal error found\r
-<DT><B>Throws:</B>\r
-<DD><CODE><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></CODE> - at the discretion of the application</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactoryErrorHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaFactoryErrorHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryException.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaFactoryException.html
deleted file mode 100644 (file)
index 598f7db..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXISchemaFactoryException\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.scomp.EXISchemaFactoryException class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXISchemaFactoryException";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactoryException.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaFactoryException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.scomp</FONT>\r
-<BR>\r
-Class EXISchemaFactoryException</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable\r
-      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception\r
-          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.scomp.EXISchemaFactoryException</B>\r
-</PRE>\r
-<DL>\r
-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public class <B>EXISchemaFactoryException</B><DT>extends java.lang.Exception</DL>\r
-</PRE>\r
-\r
-<P>\r
-Any errors encountered during schema compilation are communicated to
- an application as EXISchemaFactoryException objects.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><CODE>EXISchemaFactoryErrorHandler</CODE></A>, \r
-<A HREF="../../../serialized-form.html#org.openexi.scomp.EXISchemaFactoryException">Serialized Form</A><DT><B>Author:</B></DT>\r
-  <DD>Dennis Dawson</DD>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-<!-- =========== FIELD SUMMARY =========== -->\r
-\r
-<A NAME="field_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Field Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>static&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#XMLSCHEMA_ERROR">XMLSCHEMA_ERROR</A></B></CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The underlying XMLSchema parser found an error in the schema.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;int</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#getCode()">getCode</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a code that represents the type of the exception.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.Exception</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#getException()">getException</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an Exception object.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;org.xml.sax.Locator</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#getLocator()">getLocator</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the locator that is associated with this compilation error.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html#getMessage()">getMessage</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a message that describes the exception.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ FIELD DETAIL =========== -->\r
-\r
-<A NAME="field_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Field Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="XMLSCHEMA_ERROR"><!-- --></A><H3>\r
-XMLSCHEMA_ERROR</H3>\r
-<PRE>\r
-public static final int <B>XMLSCHEMA_ERROR</B></PRE>\r
-<DL>\r
-<DD>The underlying XMLSchema parser found an error in the schema.\r
-<P>\r
-<DL>\r
-<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openexi.scomp.EXISchemaFactoryException.XMLSCHEMA_ERROR">Constant Field Values</A></DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="getCode()"><!-- --></A><H3>\r
-getCode</H3>\r
-<PRE>\r
-public int <B>getCode</B>()</PRE>\r
-<DL>\r
-<DD>Returns a code that represents the type of the exception.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>error code</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getMessage()"><!-- --></A><H3>\r
-getMessage</H3>\r
-<PRE>\r
-public java.lang.String <B>getMessage</B>()</PRE>\r
-<DL>\r
-<DD>Returns a message that describes the exception.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Overrides:</B><DD><CODE>getMessage</CODE> in class <CODE>java.lang.Throwable</CODE></DL>\r
-</DD>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>error message</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getException()"><!-- --></A><H3>\r
-getException</H3>\r
-<PRE>\r
-public java.lang.Exception <B>getException</B>()</PRE>\r
-<DL>\r
-<DD>Returns an Exception object.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>an Exception instance for the current exception.</DL>\r
-</DD>\r
-</DL>\r
-<HR>\r
-\r
-<A NAME="getLocator()"><!-- --></A><H3>\r
-getLocator</H3>\r
-<PRE>\r
-public org.xml.sax.Locator <B>getLocator</B>()</PRE>\r
-<DL>\r
-<DD>Returns the locator that is associated with this compilation error.\r
-<P>\r
-<DD><DL>\r
-\r
-<DT><B>Returns:</B><DD>a Locator if available, otherwise null</DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaFactoryException.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaFactoryException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaReader.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EXISchemaReader.html
deleted file mode 100644 (file)
index 6249b50..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EXISchemaReader\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.scomp.EXISchemaReader class">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EXISchemaReader";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.scomp</FONT>\r
-<BR>\r
-Class EXISchemaReader</H2>\r
-<PRE>\r
-java.lang.Object\r
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">EXISchemaStruct\r
-      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.openexi.scomp.EXISchemaReader</B>\r
-</PRE>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public final class <B>EXISchemaReader</B><DT>extends EXISchemaStruct</DL>\r
-</PRE>\r
-\r
-<P>\r
-EXISchemaReader parses EXI-encoded EXI Grammar into an EXISchema.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
-\r
-<A NAME="constructor_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Constructor Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaReader.html#EXISchemaReader()">EXISchemaReader</A></B>()</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;<A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A></CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EXISchemaReader.html#parse(java.io.InputStream)">parse</A></B>(java.io.InputStream&nbsp;inputStream)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Parses EXI-encoded EXI Grammar into an EXISchema.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
-\r
-<A NAME="constructor_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Constructor Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="EXISchemaReader()"><!-- --></A><H3>\r
-EXISchemaReader</H3>\r
-<PRE>\r
-public <B>EXISchemaReader</B>()</PRE>\r
-<DL>\r
-</DL>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="parse(java.io.InputStream)"><!-- --></A><H3>\r
-parse</H3>\r
-<PRE>\r
-public <A HREF="../../../org/openexi/schema/EXISchema.html" title="class in org.openexi.schema">EXISchema</A> <B>parse</B>(java.io.InputStream&nbsp;inputStream)\r
-                throws java.io.IOException,\r
-                       org.openexi.proc.common.EXIOptionsException</PRE>\r
-<DL>\r
-<DD>Parses EXI-encoded EXI Grammar into an EXISchema.\r
-<P>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>inputStream</CODE> - EXI-encoded EXI Grammar\r
-<DT><B>Returns:</B><DD>EXISchema\r
-<DT><B>Throws:</B>\r
-<DD><CODE>java.io.IOException</CODE>\r
-<DD><CODE>org.openexi.proc.common.EXIOptionsException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>PREV CLASS</B></A>&nbsp;\r
-&nbsp;NEXT CLASS</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EXISchemaReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EXISchemaReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EntityResolverEx.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/EntityResolverEx.html
deleted file mode 100644 (file)
index cd12bdd..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-EntityResolverEx\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.scomp.EntityResolverEx interface">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="EntityResolverEx";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EntityResolverEx.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EntityResolverEx.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<!-- ======== START OF CLASS DATA ======== -->\r
-<H2>\r
-<FONT SIZE="-1">\r
-org.openexi.scomp</FONT>\r
-<BR>\r
-Interface EntityResolverEx</H2>\r
-<DL>\r
-<DT><B>All Superinterfaces:</B> <DD>org.xml.sax.EntityResolver</DD>\r
-</DL>\r
-<HR>\r
-<DL>\r
-<DT><PRE>public interface <B>EntityResolverEx</B><DT>extends org.xml.sax.EntityResolver</DL>\r
-</PRE>\r
-\r
-<P>\r
-Extended SAX EntityResolver interface for resolving entities and
- schema documents.\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-<P>\r
-\r
-<!-- ========== METHOD SUMMARY =========== -->\r
-\r
-<A NAME="method_summary"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Method Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
-<CODE>&nbsp;org.xml.sax.InputSource</CODE></FONT></TD>\r
-<TD><CODE><B><A HREF="../../../org/openexi/scomp/EntityResolverEx.html#resolveEntity(java.lang.String, java.lang.String, java.lang.String)">resolveEntity</A></B>(java.lang.String&nbsp;publicId,\r
-              java.lang.String&nbsp;systemId,\r
-              java.lang.String&nbsp;namespaceURI)</CODE>\r
-\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called for resolving schema documents upon
- occurrences of XML Schema directives such as "include", "import" and
- "redefine" within schemas.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;<A NAME="methods_inherited_from_class_org.xml.sax.EntityResolver"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left"><B>Methods inherited from interface org.xml.sax.EntityResolver</B></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD><CODE>resolveEntity</CODE></TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-<P>\r
-\r
-<!-- ============ METHOD DETAIL ========== -->\r
-\r
-<A NAME="method_detail"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Method Detail</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<A NAME="resolveEntity(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>\r
-resolveEntity</H3>\r
-<PRE>\r
-org.xml.sax.InputSource <B>resolveEntity</B>(java.lang.String&nbsp;publicId,\r
-                                      java.lang.String&nbsp;systemId,\r
-                                      java.lang.String&nbsp;namespaceURI)\r
-                                      throws org.xml.sax.SAXException,\r
-                                             java.io.IOException</PRE>\r
-<DL>\r
-<DD>This method will be called for resolving schema documents upon
- occurrences of XML Schema directives such as "include", "import" and
- "redefine" within schemas.\r
-<P>\r
-<DD><DL>\r
-</DL>\r
-</DD>\r
-<DD><DL>\r
-<DT><B>Parameters:</B><DD><CODE>publicId</CODE> - Public identifier of the schema document that is being resolved<DD><CODE>systemId</CODE> - System identifier of the schema document that is being resolved<DD><CODE>namespaceURI</CODE> - Target namespace name of the schema document that is being resolved\r
-<DT><B>Returns:</B><DD>InputSource that represents the schema document if resolved otherwise null\r
-<DT><B>Throws:</B>\r
-<DD><CODE>org.xml.sax.SAXException</CODE>\r
-<DD><CODE>java.io.IOException</CODE></DL>\r
-</DD>\r
-</DL>\r
-<!-- ========= END OF CLASS DATA ========= -->\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV CLASS&nbsp;\r
-&nbsp;<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>NEXT CLASS</B></A></FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/EntityResolverEx.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="EntityResolverEx.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-<TR>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>\r
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-frame.html
deleted file mode 100644 (file)
index 65600a9..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.scomp\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.scomp package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-<FONT size="+1" CLASS="FrameTitleFont">\r
-<A HREF="../../../org/openexi/scomp/package-summary.html" target="classFrame">org.openexi.scomp</A></FONT>\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Interfaces</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="EntityResolverEx.html" title="interface in org.openexi.scomp" target="classFrame"><I>EntityResolverEx</I></A>\r
-<BR>\r
-<A HREF="EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp" target="classFrame"><I>EXISchemaFactoryErrorHandler</I></A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Classes</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="EXISchemaFactory.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaFactory</A>\r
-<BR>\r
-<A HREF="EXISchemaReader.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaReader</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">\r
-Exceptions</FONT>&nbsp;\r
-<FONT CLASS="FrameItemFont">\r
-<BR>\r
-<A HREF="EXISchemaFactoryException.html" title="class in org.openexi.scomp" target="classFrame">EXISchemaFactoryException</A></FONT></TD>\r
-</TR>\r
-</TABLE>\r
-\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-summary.html
deleted file mode 100644 (file)
index a35b92a..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.scomp\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="org.openexi.scomp package">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.scomp";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/schema/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;NEXT PACKAGE</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<H2>\r
-Package org.openexi.scomp\r
-</H2>\r
-\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The <code>scomp</code> (schema compiler) package contains the EXISchemaFactory, which is used to compile XML Schema Documents (XSDs) to EXISchemas.\r
-<P>\r
-<B>See:</B>\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Interface Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp">EntityResolverEx</A></B></TD>\r
-<TD>Extended SAX EntityResolver interface for resolving entities and
- schema documents.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp">EXISchemaFactoryErrorHandler</A></B></TD>\r
-<TD>This interface reports exceptions from EXISchemaFactory during schema 
- processing.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp">EXISchemaFactory</A></B></TD>\r
-<TD>EXISchemaFactory compiles XML Schema into an EXISchema instance.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp">EXISchemaReader</A></B></TD>\r
-<TD>EXISchemaReader parses EXI-encoded EXI Grammar into an EXISchema.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Exception Summary</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="15%"><B><A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">EXISchemaFactoryException</A></B></TD>\r
-<TD>Any errors encountered during schema compilation are communicated to
- an application as EXISchemaFactoryException objects.</TD>\r
-</TR>\r
-</TABLE>\r
-&nbsp;\r
-\r
-<P>\r
-<A NAME="package_description"><!-- --></A><H2>\r
-Package org.openexi.scomp Description\r
-</H2>\r
-\r
-<P>\r
-<table>\r
-<tr valign="top" cellpadding="3" border="0">\r
-<td>\r
-<p>The <code>scomp</code> (schema compiler) package contains the EXISchemaFactory, which is used to compile XML Schema Documents (XSDs) to EXISchemas. Developers can implement the interface <code>EXISchemaFactoryErrorHandler</code> to capture and report runtime exceptions from EXISchemaFactory.\r
-</p>\r
-</td>\r
-<td width="385">\r
-<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture_SComp.PNG" width="375" height="280" />\r
-</td>\r
-</tr>\r
-</table>\r
-</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/schema/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;\r
-&nbsp;NEXT PACKAGE</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/org/openexi/scomp/package-tree.html
deleted file mode 100644 (file)
index 93d1752..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-org.openexi.scomp Class Hierarchy\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="org.openexi.scomp Class Hierarchy";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/schema/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-Hierarchy For Package org.openexi.scomp\r
-</H2>\r
-</CENTER>\r
-<DL>\r
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>\r
-<HR>\r
-<H2>\r
-Class Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">EXISchemaStruct<UL>\r
-<LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>EXISchemaFactory</B></A><LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>EXISchemaReader</B></A></UL>\r
-<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)\r
-<UL>\r
-<LI TYPE="circle">java.lang.Exception<UL>\r
-<LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>EXISchemaFactoryException</B></A></UL>\r
-</UL>\r
-</UL>\r
-</UL>\r
-<H2>\r
-Interface Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">org.xml.sax.EntityResolver<UL>\r
-<LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>EntityResolverEx</B></A></UL>\r
-<LI TYPE="circle">org.openexi.scomp.<A HREF="../../../org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>EXISchemaFactoryErrorHandler</B></A></UL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;<A HREF="../../../org/openexi/schema/package-tree.html"><B>PREV</B></A>&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="../../../index.html?org/openexi/scomp/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/overview-frame.html b/third-party/org.openexi/nagasena/src/main/resources/doc/overview-frame.html
deleted file mode 100644 (file)
index 045191d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Overview\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="Overview, OpenEXI Nagasena">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white">\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">\r
-<B></B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">\r
-<TR>\r
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>\r
-<P>\r
-<FONT size="+1" CLASS="FrameHeadingFont">\r
-Packages</FONT>\r
-<BR>\r
-<FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/package-frame.html" target="packageFrame">org.openexi.proc</A></FONT>\r
-<BR>\r
-<FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/common/package-frame.html" target="packageFrame">org.openexi.proc.common</A></FONT>\r
-<BR>\r
-<FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/grammars/package-frame.html" target="packageFrame">org.openexi.proc.grammars</A></FONT>\r
-<BR>\r
-<FONT CLASS="FrameItemFont"><A HREF="org/openexi/proc/io/package-frame.html" target="packageFrame">org.openexi.proc.io</A></FONT>\r
-<BR>\r
-<FONT CLASS="FrameItemFont"><A HREF="org/openexi/sax/package-frame.html" target="packageFrame">org.openexi.sax</A></FONT>\r
-<BR>\r
-<FONT CLASS="FrameItemFont"><A HREF="org/openexi/schema/package-frame.html" target="packageFrame">org.openexi.schema</A></FONT>\r
-<BR>\r
-<FONT CLASS="FrameItemFont"><A HREF="org/openexi/scomp/package-frame.html" target="packageFrame">org.openexi.scomp</A></FONT>\r
-<BR>\r
-</TD>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-&nbsp;\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/overview-summary.html b/third-party/org.openexi/nagasena/src/main/resources/doc/overview-summary.html
deleted file mode 100644 (file)
index 1a299fd..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:59 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Overview\r
-</TITLE>\r
-\r
-<META NAME="keywords" CONTENT="Overview, OpenEXI Nagasena">\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Overview";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H1>\r
-OpenEXI Nagasena\r
-</H1>\r
-</CENTER>\r
-\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-OpenEXI is a W3C open source API for converting XML files to the Efficient XML Interchange format (EXI).\r
-<P>\r
-<B>See:</B>\r
-<BR>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#overview_description"><B>Description</B></A>\r
-<P>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Packages</B></FONT></TH>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="20%"><B><A HREF="org/openexi/proc/package-summary.html">org.openexi.proc</A></B></TD>\r
-<TD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The Proc (Processor) package contains the EXIDecoder, which is used to convert EXI streams to XML format.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="20%"><B><A HREF="org/openexi/proc/common/package-summary.html">org.openexi.proc.common</A></B></TD>\r
-<TD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The common package contains classes, interfaces, and enumerators that define the vocabulary used to describe EXI streams (events, options, alignment, and character string values).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="20%"><B><A HREF="org/openexi/proc/grammars/package-summary.html">org.openexi.proc.grammars</A></B></TD>\r
-<TD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The grammars package contains the GrammarCache, which combines an XML Schema Definition with EXI grammar options to create an EXI Schema.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="20%"><B><A HREF="org/openexi/proc/io/package-summary.html">org.openexi.proc.io</A></B></TD>\r
-<TD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The IO package contains the Scanner, which is used by <code>EXIDecoder</code> to read and interpret EXI streams.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="20%"><B><A HREF="org/openexi/sax/package-summary.html">org.openexi.sax</A></B></TD>\r
-<TD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The SAX package contains the <code>Transmogrifier</code>, which encodes an XML file to an EXI stream, and the <code>EXIReader</code>, which restores an EXI stream to its logical XML equivalent.</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="20%"><B><A HREF="org/openexi/schema/package-summary.html">org.openexi.schema</A></B></TD>\r
-<TD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The schema package contains classes that are used to represent XML Schema Documents (XSDs).</TD>\r
-</TR>\r
-<TR BGCOLOR="white" CLASS="TableRowColor">\r
-<TD WIDTH="20%"><B><A HREF="org/openexi/scomp/package-summary.html">org.openexi.scomp</A></B></TD>\r
-<TD>\r
-<tr valign="top" cellpadding="3" border="0">\r
-\r
-The <code>scomp</code> (schema compiler) package contains the EXISchemaFactory, which is used to compile XML Schema Documents (XSDs) to EXISchemas.</TD>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-&nbsp;<A NAME="overview_description"><!-- --></A>\r
-<P>\r
-<table>\r
-<tr valign="top" cellpadding="3" border="0">\r
-<td>\r
-<p>OpenEXI is a W3C open source API for converting XML files to the Efficient XML Interchange format (EXI).\r
-</p>\r
-<p>You can learn more about OpenEXI by visiting the OpenEXI homepage at <a href="http://openexi.sourceforge.net" target="_blank">openexi.sourceforge.net</a>.\r
-</td>\r
-<td width="385">\r
-<img src="http://openexi.sourceforge.net/images/OpenEXI_Architecture.PNG" width="375" height="280" />\r
-</td>\r
-</tr>\r
-</table>\r
-</p>\r
-<P>\r
-\r
-<P>\r
-<DL>\r
-<!-- yWorks UML Doclet   http://www.yworks.com/   b0ac8294d3f86ae0003f3a3a002ea3cf577df824efc6f2... -->
-</DL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/overview-tree.html b/third-party/org.openexi/nagasena/src/main/resources/doc/overview-tree.html
deleted file mode 100644 (file)
index 8409fdb..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Class Hierarchy\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Class Hierarchy";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H2>\r
-Hierarchy For All Packages</H2>\r
-</CENTER>\r
-<DL>\r
-<DT><B>Package Hierarchies:</B><DD><A HREF="org/openexi/proc/package-tree.html">org.openexi.proc</A>, <A HREF="org/openexi/proc/common/package-tree.html">org.openexi.proc.common</A>, <A HREF="org/openexi/proc/grammars/package-tree.html">org.openexi.proc.grammars</A>, <A HREF="org/openexi/proc/io/package-tree.html">org.openexi.proc.io</A>, <A HREF="org/openexi/sax/package-tree.html">org.openexi.sax</A>, <A HREF="org/openexi/schema/package-tree.html">org.openexi.schema</A>, <A HREF="org/openexi/scomp/package-tree.html">org.openexi.scomp</A></DL>\r
-<HR>\r
-<H2>\r
-Class Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">org.openexi.proc.grammars.Apparatus<UL>\r
-<LI TYPE="circle">org.openexi.proc.io.<A HREF="org/openexi/proc/io/Scanner.html" title="class in org.openexi.proc.io"><B>Scanner</B></A></UL>\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/BinaryDataSource.html" title="class in org.openexi.proc.common"><B>BinaryDataSource</B></A><LI TYPE="circle">org.openexi.proc.io.<A HREF="org/openexi/proc/io/CharacterBuffer.html" title="class in org.openexi.proc.io"><B>CharacterBuffer</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="org/openexi/schema/Characters.html" title="class in org.openexi.schema"><B>Characters</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="org/openexi/schema/EmptySchema.html" title="class in org.openexi.schema"><B>EmptySchema</B></A><LI TYPE="circle">org.openexi.proc.common.EventCode<UL>\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventType.html" title="class in org.openexi.proc.common"><B>EventType</B></A> (implements org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common">EventDescription</A>)\r
-</UL>\r
-<LI TYPE="circle">org.openexi.proc.<A HREF="org/openexi/proc/EXIDecoder.html" title="class in org.openexi.proc"><B>EXIDecoder</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EXIOptions.html" title="class in org.openexi.proc.common"><B>EXIOptions</B></A><LI TYPE="circle">org.openexi.schema.<A HREF="org/openexi/schema/EXISchema.html" title="class in org.openexi.schema"><B>EXISchema</B></A><LI TYPE="circle">EXISchemaStruct<UL>\r
-<LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaFactory.html" title="class in org.openexi.scomp"><B>EXISchemaFactory</B></A><LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaReader.html" title="class in org.openexi.scomp"><B>EXISchemaReader</B></A></UL>\r
-<LI TYPE="circle">org.openexi.proc.grammars.<A HREF="org/openexi/proc/grammars/GrammarCache.html" title="class in org.openexi.proc.grammars"><B>GrammarCache</B></A> (implements org.openexi.proc.common.IGrammarCache)\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/GrammarOptions.html" title="class in org.openexi.proc.common"><B>GrammarOptions</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/QName.html" title="class in org.openexi.proc.common"><B>QName</B></A><LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/ReaderSupport.html" title="class in org.openexi.sax"><B>ReaderSupport</B></A> (implements org.xml.sax.Attributes)\r
-<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/EXIReader.html" title="class in org.openexi.sax"><B>EXIReader</B></A> (implements org.xml.sax.XMLReader)\r
-</UL>\r
-<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)\r
-<UL>\r
-<LI TYPE="circle">java.lang.Exception<UL>\r
-<LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp"><B>EXISchemaFactoryException</B></A><LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax"><B>TransmogrifierException</B></A></UL>\r
-</UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/Transmogrifier.html" title="class in org.openexi.sax"><B>Transmogrifier</B></A></UL>\r
-</UL>\r
-<H2>\r
-Interface Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax"><B>BinaryDataHandler</B></A><UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)\r
-</UL>\r
-<LI TYPE="circle">org.openexi.proc.io.<A HREF="org/openexi/proc/io/BinaryDataSink.html" title="interface in org.openexi.proc.io"><B>BinaryDataSink</B></A><LI TYPE="circle">org.xml.sax.ContentHandler<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.openexi.sax.<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ext.LexicalHandler)\r
-</UL>\r
-<LI TYPE="circle">org.xml.sax.EntityResolver<UL>\r
-<LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EntityResolverEx.html" title="interface in org.openexi.scomp"><B>EntityResolverEx</B></A></UL>\r
-<LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/EventDescription.html" title="interface in org.openexi.proc.common"><B>EventDescription</B></A><LI TYPE="circle">org.openexi.scomp.<A HREF="org/openexi/scomp/EXISchemaFactoryErrorHandler.html" title="interface in org.openexi.scomp"><B>EXISchemaFactoryErrorHandler</B></A><LI TYPE="circle">org.openexi.proc.<A HREF="org/openexi/proc/EXISchemaResolver.html" title="interface in org.openexi.proc"><B>EXISchemaResolver</B></A><LI TYPE="circle">org.xml.sax.ext.LexicalHandler<UL>\r
-<LI TYPE="circle">org.openexi.sax.<A HREF="org/openexi/sax/SAXTransmogrifier.html" title="interface in org.openexi.sax"><B>SAXTransmogrifier</B></A> (also extends org.openexi.sax.<A HREF="org/openexi/sax/BinaryDataHandler.html" title="interface in org.openexi.sax">BinaryDataHandler</A>, org.xml.sax.ContentHandler)\r
-</UL>\r
-</UL>\r
-<H2>\r
-Enum Hierarchy\r
-</H2>\r
-<UL>\r
-<LI TYPE="circle">java.lang.Object<UL>\r
-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)\r
-<UL>\r
-<LI TYPE="circle">org.openexi.proc.<A HREF="org/openexi/proc/HeaderOptionsOutputType.html" title="enum in org.openexi.proc"><B>HeaderOptionsOutputType</B></A><LI TYPE="circle">org.openexi.proc.common.<A HREF="org/openexi/proc/common/AlignmentType.html" title="enum in org.openexi.proc.common"><B>AlignmentType</B></A></UL>\r
-</UL>\r
-</UL>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/package-list b/third-party/org.openexi/nagasena/src/main/resources/doc/package-list
deleted file mode 100644 (file)
index 746aadc..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-org.openexi.proc\r
-org.openexi.proc.common\r
-org.openexi.proc.grammars\r
-org.openexi.proc.io\r
-org.openexi.sax\r
-org.openexi.schema\r
-org.openexi.scomp\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/resources/inherit.gif b/third-party/org.openexi/nagasena/src/main/resources/doc/resources/inherit.gif
deleted file mode 100644 (file)
index c814867..0000000
Binary files a/third-party/org.openexi/nagasena/src/main/resources/doc/resources/inherit.gif and /dev/null differ
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/serialized-form.html b/third-party/org.openexi/nagasena/src/main/resources/doc/serialized-form.html
deleted file mode 100644 (file)
index c3688f5..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<!--NewPage-->\r
-<HTML>\r
-<HEAD>\r
-<!-- Generated by javadoc (build 1.5.0_22) on Thu Apr 10 14:54:58 PDT 2014 -->\r
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\r
-<TITLE>\r
-Serialized Form\r
-</TITLE>\r
-\r
-\r
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">\r
-\r
-<SCRIPT type="text/javascript">\r
-function windowTitle()\r
-{\r
-    parent.document.title="Serialized Form";\r
-}\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-</NOSCRIPT>\r
-\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="white" onload="windowTitle();">\r
-\r
-\r
-<!-- ========= START OF TOP NAVBAR ======= -->\r
-<A NAME="navbar_top"><!-- --></A>\r
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_top_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_top"></A>\r
-<!-- ========= END OF TOP NAVBAR ========= -->\r
-\r
-<HR>\r
-<CENTER>\r
-<H1>\r
-Serialized Form</H1>\r
-</CENTER>\r
-<HR SIZE="4" NOSHADE>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="center"><FONT SIZE="+2">\r
-<B>Package</B> <B>org.openexi.sax</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-<A NAME="org.openexi.sax.TransmogrifierException"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class <A HREF="org/openexi/sax/TransmogrifierException.html" title="class in org.openexi.sax">org.openexi.sax.TransmogrifierException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-<B>serialVersionUID:&nbsp;</B>-4536662596727577640L\r
-\r
-<P>\r
-<A NAME="serializedForm"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Serialized Fields</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<H3>\r
-m_code</H3>\r
-<PRE>\r
-int <B>m_code</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-<H3>\r
-m_message</H3>\r
-<PRE>\r
-java.lang.String <B>m_message</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-<H3>\r
-m_exception</H3>\r
-<PRE>\r
-java.lang.Exception <B>m_exception</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-<H3>\r
-m_locator</H3>\r
-<PRE>\r
-org.xml.sax.Locator <B>m_locator</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR SIZE="4" NOSHADE>\r
-\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="center"><FONT SIZE="+2">\r
-<B>Package</B> <B>org.openexi.scomp</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-<A NAME="org.openexi.scomp.EXISchemaFactoryException"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">\r
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
-<B>Class <A HREF="org/openexi/scomp/EXISchemaFactoryException.html" title="class in org.openexi.scomp">org.openexi.scomp.EXISchemaFactoryException</A> extends java.lang.Exception implements Serializable</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<P>\r
-<B>serialVersionUID:&nbsp;</B>3816521974819647026L\r
-\r
-<P>\r
-<A NAME="serializedForm"><!-- --></A>\r
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
-<B>Serialized Fields</B></FONT></TH>\r
-</TR>\r
-</TABLE>\r
-\r
-<H3>\r
-m_code</H3>\r
-<PRE>\r
-int <B>m_code</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-<H3>\r
-m_message</H3>\r
-<PRE>\r
-java.lang.String <B>m_message</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-<H3>\r
-m_exception</H3>\r
-<PRE>\r
-java.lang.Exception <B>m_exception</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-<HR>\r
-<H3>\r
-m_locator</H3>\r
-<PRE>\r
-org.xml.sax.Locator <B>m_locator</B></PRE>\r
-<DL>\r
-<DL>\r
-</DL>\r
-</DL>\r
-\r
-<P>\r
-<HR>\r
-\r
-\r
-<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
-<A NAME="navbar_bottom"><!-- --></A>\r
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
-<TR>\r
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
-<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
-  <TR ALIGN="center" VALIGN="top">\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>\r
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>\r
-  </TR>\r
-</TABLE>\r
-</TD>\r
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
-</EM>\r
-</TD>\r
-</TR>\r
-\r
-<TR>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-&nbsp;PREV&nbsp;\r
-&nbsp;NEXT</FONT></TD>\r
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
-  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;\r
-&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;\r
-&nbsp;<SCRIPT type="text/javascript">\r
-  <!--\r
-  if(window==top) {\r
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');\r
-  }\r
-  //-->\r
-</SCRIPT>\r
-<NOSCRIPT>\r
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>\r
-</NOSCRIPT>\r
-\r
-\r
-</FONT></TD>\r
-</TR>\r
-</TABLE>\r
-<A NAME="skip-navbar_bottom"></A>\r
-<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
-\r
-<HR>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/third-party/org.openexi/nagasena/src/main/resources/doc/stylesheet.css b/third-party/org.openexi/nagasena/src/main/resources/doc/stylesheet.css
deleted file mode 100644 (file)
index 14c3737..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Javadoc style sheet */\r
-\r
-/* Define colors, fonts and other style attributes here to override the defaults */\r
-\r
-/* Page background color */\r
-body { background-color: #FFFFFF }\r
-\r
-/* Headings */\r
-h1 { font-size: 145% }\r
-\r
-/* Table colors */\r
-.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */\r
-.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */\r
-.TableRowColor         { background: #FFFFFF } /* White */\r
-\r
-/* Font used in left-hand frame lists */\r
-.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }\r
-.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }\r
-.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }\r
-\r
-/* Navigation bar fonts and colors */\r
-.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */\r
-.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */\r
-.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}\r
-.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}\r
-\r
-.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}\r
-.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}\r
-\r
diff --git a/third-party/org.openexi/pom.xml b/third-party/org.openexi/pom.xml
deleted file mode 100644 (file)
index 6369b29..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>commons.thirdparty</artifactId>
-        <version>1.1.2-SNAPSHOT</version>
-        <relativePath>../commons/thirdparty</relativePath>
-    </parent>
-
-    <groupId>org.opendaylight.controller.thirdparty</groupId>
-    <artifactId>org.openexi</artifactId>
-    <version>0000.0002.0038.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-    <prerequisites>
-        <maven>3.0.4</maven>
-    </prerequisites>
-
-    <modules>
-        <module>nagasena</module>
-        <module>nagasena-rta</module>
-    </modules>
-
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>truezip-maven-plugin</artifactId>
-                    <version>1.1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>2.4.0</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
-