Changeset 5590
- Timestamp:
- 08/21/14 15:00:37 (10 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/service/impl/VirtualCollectionCMDICreatorImpl.java
r5589 r5590 2 2 3 3 import eu.clarin.cmdi.virtualcollectionregistry.model.Creator; 4 import eu.clarin.cmdi.virtualcollectionregistry.model.GeneratedBy; 4 5 import eu.clarin.cmdi.virtualcollectionregistry.model.Resource; 5 6 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection; … … 11 12 import eu.clarin.cmdi.virtualcollectionregistry.model.cmdi.CMD.Components.VirtualCollection.Creator.Organisation; 12 13 import eu.clarin.cmdi.virtualcollectionregistry.model.cmdi.CMD.Components.VirtualCollection.Description; 14 import eu.clarin.cmdi.virtualcollectionregistry.model.cmdi.CMD.Components.VirtualCollection.GeneratedBy.QueryProfile; 15 import eu.clarin.cmdi.virtualcollectionregistry.model.cmdi.CMD.Components.VirtualCollection.GeneratedBy.QueryValue; 13 16 import eu.clarin.cmdi.virtualcollectionregistry.model.cmdi.CMD.Components.VirtualCollection.Name; 14 17 import eu.clarin.cmdi.virtualcollectionregistry.model.cmdi.CMD.Components.VirtualCollection.ReproducabilityNotice; … … 169 172 } 170 173 171 if (vc.getType() == VirtualCollection.Type.INTENSIONAL) { 172 final CMD.Components.VirtualCollection.GeneratedBy generatedBy = new CMD.Components.VirtualCollection.GeneratedBy(); 173 //TODO: add 'generated by' values 174 virtualCollection.setGeneratedBy(generatedBy); 174 if (vc.getType() == VirtualCollection.Type.INTENSIONAL && vc.getGeneratedBy() != null) { 175 virtualCollection.setGeneratedBy(getGeneratedBy(vc.getGeneratedBy())); 175 176 } 176 177 … … 178 179 components.setVirtualCollection(virtualCollection); 179 180 return components; 181 } 182 183 private CMD.Components.VirtualCollection.GeneratedBy getGeneratedBy(GeneratedBy generatedBy) { 184 final CMD.Components.VirtualCollection.GeneratedBy component = new CMD.Components.VirtualCollection.GeneratedBy(); 185 186 final String uri = generatedBy.getURI(); 187 if (uri != null) { 188 component.setURI(uri); 189 } 190 191 final String description = generatedBy.getDescription(); 192 if (description != null) { 193 final CMD.Components.VirtualCollection.GeneratedBy.Description descriptionElement = new CMD.Components.VirtualCollection.GeneratedBy.Description(); 194 descriptionElement.setValue(description); 195 component.setDescription(descriptionElement); 196 } 197 198 if (generatedBy.getQuery() != null) { 199 final String profile = generatedBy.getQuery().getProfile(); 200 if (profile != null) { 201 final QueryProfile profileElement = new QueryProfile(); 202 profileElement.setValue(profile); 203 component.setQueryProfile(profileElement); 204 } 205 206 final String value = generatedBy.getQuery().getValue(); 207 if (value != null) { 208 final QueryValue valueElement = new QueryValue(); 209 valueElement.setValue(value); 210 component.setQueryValue(valueElement); 211 } 212 } 213 214 return component; 180 215 } 181 216 -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/xsd/VirtualCollection.xsd
r5589 r5590 2 2 instance (e.g. for grouping metadata descriptions into 3 3 collections)</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="Resource"><xs:annotation><xs:documentation>The ResourceProxy refers to a file that is not a metadata 4 instance (e.g. a text document)</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="SearchService"><xs:annotation><xs:documentation>The ResourceProxy refers to a (SRU/CQL) web service that can be used to query the resource described in this file</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="SearchPage"><xs:annotation><xs:documentation>The ResourceProxy refers to a web page that can be used to query the resource described in this file</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="LandingPage"><xs:annotation><xs:documentation>The ResourceProxy refers to a web page that contains the "original context" of the resource described in this file (e.g. repository web page displaying the metadata).</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType><xs:complexType name="complextype-Status-1---"><xs:simpleContent><xs:extension base="cmd:simpletype-Status-1---"/></xs:simpleContent></xs:complexType><xs:complexType name="complextype-Reproducability-1---"><xs:simpleContent><xs:extension base="cmd:simpletype-Reproducability-1---"/></xs:simpleContent></xs:complexType><xs:complexType name="complextype-Purpose-1---"><xs:simpleContent><xs:extension base="cmd:simpletype-Purpose-1---"/></xs:simpleContent></xs:complexType><xs:element name="CMD"><xs:complexType><xs:sequence><xs:element name="Header"><xs:complexType><xs:sequence><xs:element name="MdCreator" type="xs:string" minOccurs="0" maxOccurs="unbounded"/><xs:element name="MdCreationDate" type="xs:date" minOccurs="0"/><xs:element name="MdSelfLink" type="xs:anyURI" minOccurs="0"/><xs:element name="MdProfile" type="xs:anyURI" minOccurs="0"/><xs:element name="MdCollectionDisplayName" type="xs:string" minOccurs="0"/></xs:sequence></xs:complexType></xs:element><xs:element name="Resources"><xs:complexType><xs:sequence><xs:element name="ResourceProxyList"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" minOccurs="0" name="ResourceProxy"><xs:complexType><xs:sequence><xs:element maxOccurs="1" minOccurs="1" name="ResourceType"><xs:complexType><xs:simpleContent><xs:extension base="cmd:Resourcetype_simple"><xs:attribute name="mimetype" type="xs:string"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element maxOccurs="1" minOccurs="1" name="ResourceRef" type="xs:anyURI"/></xs:sequence><xs:attribute name="id" type="xs:ID" use="required"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="JournalFileProxyList"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" minOccurs="0" name="JournalFileProxy"><xs:complexType><xs:sequence><xs:element maxOccurs="1" minOccurs="1" name="JournalFileRef" type="xs:anyURI"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="ResourceRelationList"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" minOccurs="0" name="ResourceRelation"><xs:complexType><xs:sequence><xs:element maxOccurs="1" minOccurs="1" name="RelationType"/><xs:element maxOccurs="1" minOccurs="1" name="Res1"><xs:complexType><xs:attribute name="ref" type="xs:IDREF"/></xs:complexType></xs:element><xs:element maxOccurs="1" minOccurs="1" name="Res2"><xs:complexType><xs:attribute name="ref" type="xs:IDREF"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element minOccurs="0" name="IsPartOfList"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" minOccurs="0" name="IsPartOf" type="xs:anyURI"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Components"><xs:complexType><xs:sequence><xs:element name="VirtualCollection" minOccurs="1" maxOccurs="1"><xs:complexType><xs:sequence><xs:element name="Name" dcr:datcat="http://www.isocat.org/datcat/DC-6119" minOccurs="1" maxOccurs="1" ann:displaypriority="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Description" dcr:datcat="http://www.isocat.org/datcat/DC-2520" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="CreationDate" dcr:datcat="http://www.isocat.org/datcat/DC-2510" type="xs:date" minOccurs="1" maxOccurs="1"/><xs:element name="Status" dcr:datcat="http://www.isocat.org/datcat/DC-3818" minOccurs="1" maxOccurs="1" type="cmd:complextype-Status-1---"/><xs:element name="Reproducability" minOccurs="0" maxOccurs="1" type="cmd:complextype-Reproducability-1---"/><xs:element name="Purpose" dcr:datcat="http://www.isocat.org/datcat/DC-6151" minOccurs="0" maxOccurs="1" type="cmd:complextype-Purpose-1---"/><xs:element name="ReproducabilityNotice" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Origin" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Creator" minOccurs="1" maxOccurs="unbounded" dcr:datcat="http://www.isocat.org/datcat/DC-6714"><xs:complexType><xs:sequence><xs:element name="Name" dcr:datcat="http://www.isocat.org/datcat/DC-2512" minOccurs="1" maxOccurs="1" ann:displaypriority="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Email" dcr:datcat="http://www.isocat.org/datcat/DC-2521" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Organisation" dcr:datcat="http://www.isocat.org/datcat/DC-2459" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="ref" type="xs:IDREFS"/></xs:complexType></xs:element><xs:element name="Resource" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="Label" dcr:datcat="http://www.isocat.org/datcat/DC-2544" minOccurs="0" maxOccurs="1" ann:displaypriority="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Description" dcr:datcat="http://www.isocat.org/datcat/DC-2520" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="ref" type="xs:IDREFS"/></xs:complexType></xs:element><xs:element name="GeneratedBy" minOccurs="0" maxOccurs="1"><xs:complexType><xs:sequence><xs:element name="Description" dcr:datcat="http://www.isocat.org/datcat/DC-2520" minOccurs="1" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="URI" dcr:datcat="http://www.isocat.org/datcat/DC-5643" minOccurs="1" maxOccurs="1" ann:displaypriority="3"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="QueryProfile" minOccurs="1" maxOccurs="1" ann:documentation="Identifier of the mechanism, i.e. the protocol to be used, by which the members of the virtual collection should be retrieved. A application exploiting the query can use this to use a proper driver to talk to the service. Example: In case of CLARIN-FCS access the endpoint by FCS-compatible means." ann:displaypriority="2"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="QueryValue" minOccurs="1" maxOccurs="1" ann:documentation="The query that should be passed on to the service by which it can look up the items that are part of this collection. This value should be in the query language supported by the service. Example: In case of CLARIN-FCS, this value is the CQL query to be send to the endpoint." ann:displaypriority="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="ref" type="xs:IDREFS"/></xs:complexType></xs:element></xs:sequence><xs:attribute name="ref" type="xs:IDREFS"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence><xs:attribute name="CMDVersion" fixed="1.1" use="required"/></xs:complexType></xs:element></xs:schema>4 instance (e.g. a text document)</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="SearchService"><xs:annotation><xs:documentation>The ResourceProxy refers to a (SRU/CQL) web service that can be used to query the resource described in this file</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="SearchPage"><xs:annotation><xs:documentation>The ResourceProxy refers to a web page that can be used to query the resource described in this file</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="LandingPage"><xs:annotation><xs:documentation>The ResourceProxy refers to a web page that contains the "original context" of the resource described in this file (e.g. repository web page displaying the metadata).</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType><xs:complexType name="complextype-Status-1---"><xs:simpleContent><xs:extension base="cmd:simpletype-Status-1---"/></xs:simpleContent></xs:complexType><xs:complexType name="complextype-Reproducability-1---"><xs:simpleContent><xs:extension base="cmd:simpletype-Reproducability-1---"/></xs:simpleContent></xs:complexType><xs:complexType name="complextype-Purpose-1---"><xs:simpleContent><xs:extension base="cmd:simpletype-Purpose-1---"/></xs:simpleContent></xs:complexType><xs:element name="CMD"><xs:complexType><xs:sequence><xs:element name="Header"><xs:complexType><xs:sequence><xs:element name="MdCreator" type="xs:string" minOccurs="0" maxOccurs="unbounded"/><xs:element name="MdCreationDate" type="xs:date" minOccurs="0"/><xs:element name="MdSelfLink" type="xs:anyURI" minOccurs="0"/><xs:element name="MdProfile" type="xs:anyURI" minOccurs="0"/><xs:element name="MdCollectionDisplayName" type="xs:string" minOccurs="0"/></xs:sequence></xs:complexType></xs:element><xs:element name="Resources"><xs:complexType><xs:sequence><xs:element name="ResourceProxyList"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" minOccurs="0" name="ResourceProxy"><xs:complexType><xs:sequence><xs:element maxOccurs="1" minOccurs="1" name="ResourceType"><xs:complexType><xs:simpleContent><xs:extension base="cmd:Resourcetype_simple"><xs:attribute name="mimetype" type="xs:string"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element maxOccurs="1" minOccurs="1" name="ResourceRef" type="xs:anyURI"/></xs:sequence><xs:attribute name="id" type="xs:ID" use="required"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="JournalFileProxyList"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" minOccurs="0" name="JournalFileProxy"><xs:complexType><xs:sequence><xs:element maxOccurs="1" minOccurs="1" name="JournalFileRef" type="xs:anyURI"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="ResourceRelationList"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" minOccurs="0" name="ResourceRelation"><xs:complexType><xs:sequence><xs:element maxOccurs="1" minOccurs="1" name="RelationType"/><xs:element maxOccurs="1" minOccurs="1" name="Res1"><xs:complexType><xs:attribute name="ref" type="xs:IDREF"/></xs:complexType></xs:element><xs:element maxOccurs="1" minOccurs="1" name="Res2"><xs:complexType><xs:attribute name="ref" type="xs:IDREF"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element minOccurs="0" name="IsPartOfList"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" minOccurs="0" name="IsPartOf" type="xs:anyURI"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Components"><xs:complexType><xs:sequence><xs:element name="VirtualCollection" minOccurs="1" maxOccurs="1"><xs:complexType><xs:sequence><xs:element name="Name" dcr:datcat="http://www.isocat.org/datcat/DC-6119" minOccurs="1" maxOccurs="1" ann:displaypriority="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Description" dcr:datcat="http://www.isocat.org/datcat/DC-2520" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="CreationDate" dcr:datcat="http://www.isocat.org/datcat/DC-2510" type="xs:date" minOccurs="1" maxOccurs="1"/><xs:element name="Status" dcr:datcat="http://www.isocat.org/datcat/DC-3818" minOccurs="1" maxOccurs="1" type="cmd:complextype-Status-1---"/><xs:element name="Reproducability" minOccurs="0" maxOccurs="1" type="cmd:complextype-Reproducability-1---"/><xs:element name="Purpose" dcr:datcat="http://www.isocat.org/datcat/DC-6151" minOccurs="0" maxOccurs="1" type="cmd:complextype-Purpose-1---"/><xs:element name="ReproducabilityNotice" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Origin" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Creator" minOccurs="1" maxOccurs="unbounded" dcr:datcat="http://www.isocat.org/datcat/DC-6714"><xs:complexType><xs:sequence><xs:element name="Name" dcr:datcat="http://www.isocat.org/datcat/DC-2512" minOccurs="1" maxOccurs="1" ann:displaypriority="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Email" dcr:datcat="http://www.isocat.org/datcat/DC-2521" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Organisation" dcr:datcat="http://www.isocat.org/datcat/DC-2459" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="ref" type="xs:IDREFS"/></xs:complexType></xs:element><xs:element name="Resource" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="Label" dcr:datcat="http://www.isocat.org/datcat/DC-2544" minOccurs="0" maxOccurs="1" ann:displaypriority="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="Description" dcr:datcat="http://www.isocat.org/datcat/DC-2520" minOccurs="0" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="ref" type="xs:IDREFS"/></xs:complexType></xs:element><xs:element name="GeneratedBy" minOccurs="0" maxOccurs="1"><xs:complexType><xs:sequence><xs:element name="Description" dcr:datcat="http://www.isocat.org/datcat/DC-2520" minOccurs="1" maxOccurs="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="URI" dcr:datcat="http://www.isocat.org/datcat/DC-5643" type="xs:anyURI" minOccurs="1" maxOccurs="1" ann:displaypriority="3"/><xs:element name="QueryProfile" minOccurs="1" maxOccurs="1" ann:documentation="Identifier of the mechanism, i.e. the protocol to be used, by which the members of the virtual collection should be retrieved. A application exploiting the query can use this to use a proper driver to talk to the service. Example: In case of CLARIN-FCS access the endpoint by FCS-compatible means." ann:displaypriority="2"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element><xs:element name="QueryValue" minOccurs="1" maxOccurs="1" ann:documentation="The query that should be passed on to the service by which it can look up the items that are part of this collection. This value should be in the query language supported by the service. Example: In case of CLARIN-FCS, this value is the CQL query to be send to the endpoint." ann:displaypriority="1"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"/></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="ref" type="xs:IDREFS"/></xs:complexType></xs:element></xs:sequence><xs:attribute name="ref" type="xs:IDREFS"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence><xs:attribute name="CMDVersion" fixed="1.1" use="required"/></xs:complexType></xs:element></xs:schema>
Note: See TracChangeset
for help on using the changeset viewer.