diff --git a/config/licenser/known_exceptions.txt b/config/licenser/known_exceptions.txt index fcb7f4b9..030bf67e 100644 --- a/config/licenser/known_exceptions.txt +++ b/config/licenser/known_exceptions.txt @@ -38,10 +38,5 @@ productMods/js/visualization/entitycomparison/jquery_plugins/* # PROBLEM: Can't find any info on licensing. productMods/js/jquery_plugins/jquery.truncator.js -# See /doc/3rd-party-licenses.txt for LICENSE file -src/edu/cornell/mannlib/semservices/util/ObjectUtils.java -src/edu/cornell/mannlib/semservices/util/XMLGregorianCalendarConverter.java -src/edu/cornell/mannlib/vitro/webapp/utils/ConceptSearchService/BeanToJsonSerializer.java - # Part of the OpenSocial integration - should this really be under the Apache license? themes/wilma/css/openSocial/gadgets.css \ No newline at end of file diff --git a/doc/3rd-party-licenses.txt b/doc/3rd-party-licenses.txt index 89afc60f..6bf231e6 100644 --- a/doc/3rd-party-licenses.txt +++ b/doc/3rd-party-licenses.txt @@ -24,6 +24,9 @@ dwr ezmorph gson jakarta-jstl +jackson-annotations-2.3.0 +jackson-core-2.3.0 +jackson-databind-2.3.0 jarjar jmeter joda-time diff --git a/productMods/WEB-INF/resources/reasoner_plugins.txt b/productMods/WEB-INF/resources/reasoner_plugins.txt index e69de29b..2eb81e36 100644 --- a/productMods/WEB-INF/resources/reasoner_plugins.txt +++ b/productMods/WEB-INF/resources/reasoner_plugins.txt @@ -0,0 +1 @@ +edu.cornell.mannlib.vitro.webapp.reasoner.plugin.DisableSameAs diff --git a/productMods/css/individual/individual-2column-view.css b/productMods/css/individual/individual-2column-view.css index 71f2b279..081991d6 100644 --- a/productMods/css/individual/individual-2column-view.css +++ b/productMods/css/individual/individual-2column-view.css @@ -290,6 +290,7 @@ a#manageLabels { border-bottom: 1px solid #DDE4E3; padding-bottom:1px; margin-bottom:8px; + padding-top:18px; } #individual-info div#contactContainer h3{ color:#8aa149; diff --git a/productMods/js/homePageMaps.js b/productMods/js/homePageMaps.js index 05885095..01908fd3 100644 --- a/productMods/js/homePageMaps.js +++ b/productMods/js/homePageMaps.js @@ -18,14 +18,14 @@ $(document).ready(function(){ buildGlobalMap(); $(this).addClass("selected"); $('a#countryLink').removeClass("selected"); - $('a#nyLink').removeClass("selected"); + $('a#localLink').removeClass("selected"); }); $('a#countryLink').click(function() { buildCountryMap(); $(this).addClass("selected"); $('a#globalLink').removeClass("selected"); - $('a#nyLink').removeClass("selected"); + $('a#localLink').removeClass("selected"); }); $('a#localLink').click(function() { @@ -369,10 +369,11 @@ $(document).ready(function(){ var html = i18nStrings.currentlyNoResearchers; $('section#home-geo-focus div#timeIndicatorGeo span').html(html); $('section#home-geo-focus').css("height","175px"); - $('section#home-geo-focus div#timeIndicator').css("margin-top","50px"); + $('section#home-geo-focus div#timeIndicatorGeo').css("margin-top","50px"); $('section#home-geo-focus div#mapGlobal').hide(); $('section#home-geo-focus div#mapCountry').hide(); $('section#home-geo-focus div#mapLocal').hide(); + $('section#home-geo-focus div#mapControls').hide(); } else { $.each(results, function() { diff --git a/productMods/js/homePageUtils.js b/productMods/js/homePageUtils.js index 1341292b..7c5410ba 100644 --- a/productMods/js/homePageUtils.js +++ b/productMods/js/homePageUtils.js @@ -60,7 +60,7 @@ $(document).ready(function(){ getFacultyMembers(); } else { - individualList = "

  • " + i18nStrings.noFacultyFound + "
  • "; + individualList = "

  • " + i18nStrings.noFacultyFound + "
  • "; $('div#tempSpacing').hide(); $('div#research-faculty-mbrs ul#facultyThumbs').append(individualList); } @@ -95,7 +95,7 @@ $(document).ready(function(){ }); } else { - individualList = "

  • " + i18nStrings.noFacultyFound + "
  • "; + individualList = "

  • " + i18nStrings.noFacultyFound + "
  • "; $('div#tempSpacing').hide(); $('div#research-faculty-mbrs ul#facultyThumbs').append(individualList); $('div#research-faculty-mbrs ul#facultyThumbs').css("padding", "1.0em 0 0.825em 0.75em"); diff --git a/productMods/templates/freemarker/body/individual/individual--foaf-person-2column.ftl b/productMods/templates/freemarker/body/individual/individual--foaf-person-2column.ftl index 783105ff..712f5b33 100644 --- a/productMods/templates/freemarker/body/individual/individual--foaf-person-2column.ftl +++ b/productMods/templates/freemarker/body/individual/individual--foaf-person-2column.ftl @@ -61,7 +61,7 @@ <@p.verboseDisplay title /> <#list title.statements as statement> - ${statement.preferredTitle} + ${statement.preferredTitle} <@p.editingLinks "${title.localName}" "${title.name}" statement editable title.rangeUri /> @@ -96,6 +96,9 @@ <#include "individual-researchAreas.ftl"> + + <#include "individual-geographicFocus.ftl"> +
    diff --git a/productMods/templates/freemarker/body/individual/individual--foaf-person-quickview.ftl b/productMods/templates/freemarker/body/individual/individual--foaf-person-quickview.ftl index 4ac95fce..a5dbae08 100644 --- a/productMods/templates/freemarker/body/individual/individual--foaf-person-quickview.ftl +++ b/productMods/templates/freemarker/body/individual/individual--foaf-person-quickview.ftl @@ -69,7 +69,7 @@ <#if title?has_content> <#-- true when the property is in the list, even if not populated (when editing) --> <#if (title.statements?size < 1) > <@p.addLinkWithLabel title editable /> - <#else> + <#elseif editable>

    ${title.name?capitalize!}

    <@p.verboseDisplay title /> diff --git a/productMods/templates/freemarker/lib/lib-home-page.ftl b/productMods/templates/freemarker/lib/lib-home-page.ftl index 9d46e731..61fddcb0 100644 --- a/productMods/templates/freemarker/lib/lib-home-page.ftl +++ b/productMods/templates/freemarker/lib/lib-home-page.ftl @@ -141,7 +141,7 @@ <#if !foundClassGroup> -

  • ${i18n().no_research_content_found}
  • +

  • ${i18n().no_research_content_found}
  • diff --git a/rdf/display/everytime/PropertyConfig.n3 b/rdf/display/everytime/PropertyConfig.n3 index e0bacd39..d96824b5 100644 --- a/rdf/display/everytime/PropertyConfig.n3 +++ b/rdf/display/everytime/PropertyConfig.n3 @@ -952,6 +952,8 @@ local:outputOfConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 80 ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:hasOutputContext a :ConfigContext ; @@ -966,6 +968,8 @@ local:hasOutputConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 80 ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . @@ -1145,7 +1149,7 @@ local:eventsForSeriesConfig a :ObjectPropertyDisplayConfig ; local:eventLocationContext a :ConfigContext ; :hasConfiguration local:eventLocationConfig ; - :configContextFor ; + :configContextFor ; ## located in :qualifiedByDomain ; :qualifiedBy vivo:GeographicLocation . @@ -1155,11 +1159,13 @@ local:eventLocationConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 30; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:eventInFacilityContext a :ConfigContext ; :hasConfiguration local:eventInFacilityConfig ; - :configContextFor ; + :configContextFor ; ## located in :qualifiedByDomain ; :qualifiedBy vivo:Facility . @@ -1169,25 +1175,45 @@ local:eventInFacilityConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 29; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . -local:organizationLocationContext a :ConfigContext ; - :hasConfiguration local:organizationLocationConfig ; - :configContextFor ; - :qualifiedByDomain ; - :qualifiedBy vivo:GeographicLocation . +local:agentInGeoLocationContext a :ConfigContext ; + :hasConfiguration local:agentInGeoLocationConfig ; + :configContextFor ; ## located in + :qualifiedByDomain ; + :qualifiedBy vivo:GeographicLocation . -local:organizationLocationConfig a :ObjectPropertyDisplayConfig ; +local:agentInGeoLocationConfig a :ObjectPropertyDisplayConfig ; :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; :displayName "geographic location" ; vitro:displayRankAnnot 30; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; + :propertyGroup . + +local:agentInFacilityContext a :ConfigContext ; + :hasConfiguration local:agentInFacilityConfig ; + :configContextFor ; ## located in + :qualifiedByDomain ; + :qualifiedBy vivo:Facility . + +local:agentInFacilityConfig a :ObjectPropertyDisplayConfig ; + :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; + :displayName "located in facility" ; + vitro:displayRankAnnot 32; + vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:materialEntityInFacilityContext a :ConfigContext ; :hasConfiguration local:materialEntityInFacilityConfig ; - :configContextFor ; + :configContextFor ; ## located in :qualifiedByDomain ; :qualifiedBy vivo:Facility . @@ -1197,6 +1223,8 @@ local:materialEntityInFacilityConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 2; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:hasRoomContext a :ConfigContext ; @@ -1208,7 +1236,7 @@ local:hasRoomContext a :ConfigContext ; local:hasRoomConfig a :ObjectPropertyDisplayConfig ; :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; :displayName "rooms" ; - vitro:displayRankAnnot 22; + vitro:displayRankAnnot 30; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:selectFromExistingAnnot "true"^^xsd:boolean ; @@ -1227,82 +1255,111 @@ local:roomWithinBuildingConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 23; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:geographicLocationContainsBuildingContext a :ConfigContext ; - :hasConfiguration local:geographicalLocationContainsBuildingConfig ; + :hasConfiguration local:geographicLocationContainsBuildingConfig ; :configContextFor ; :qualifiedByDomain vivo:GeographicLocation ; :qualifiedBy vivo:Building . local:geographicLocationContainsBuildingConfig a :ObjectPropertyDisplayConfig ; :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; - :displayName "geographical location for facility" ; - vitro:displayRankAnnot 26; + :displayName "location of facility" ; + vitro:displayRankAnnot 85; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . -local:bldgGeographicallyWithinContext a :ConfigContext ; - :hasConfiguration local:bldgGeographicallyWithinConfig ; +local:siteGeographicallyWithinGeoLocationContext a :ConfigContext ; + :hasConfiguration local:siteGeographicallyWithinGeoLocationConfig ; :configContextFor ; :qualifiedByDomain ; ## Site :qualifiedBy vivo:GeographicLocation . -local:bldgGeographicallyWithinConfig a :ObjectPropertyDisplayConfig ; +local:siteGeographicallyWithinGeoLocationConfig a :ObjectPropertyDisplayConfig ; :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; :displayName "geographically within" ; + vitro:displayRankAnnot 40; + vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; + :propertyGroup . + +local:facilitySiteOfEventContext a :ConfigContext ; + :hasConfiguration local:facilitySiteOfEventConfig ; + :configContextFor ; ## location of + :qualifiedByDomain vivo:Facility ; ## was ## Site + :qualifiedBy . ## was ## Independent Continuant + +local:facilitySiteOfEventConfig a :ObjectPropertyDisplayConfig ; + :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; + :displayName "facility for event" ; + vitro:displayRankAnnot 22; + vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; + :propertyGroup . + +local:facilitySiteOfAgentContext a :ConfigContext ; + :hasConfiguration local:facilitySiteOfAgentConfig ; + :configContextFor ; ## location of + :qualifiedByDomain vivo:Facility ; ## was ## Site + :qualifiedBy . ## was ## Independent Continuant + +local:facilitySiteOfAgentConfig a :ObjectPropertyDisplayConfig ; + :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; + :displayName "facility for person, group, or organization" ; vitro:displayRankAnnot 20; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . -local:bldgGeographicaLocationOfContext a :ConfigContext ; - :hasConfiguration local:bldgGeographicaLocationOfConfig ; - :configContextFor ; - :qualifiedByDomain ; - :qualifiedBy . +# uses and used by need work -- apply to continuants and occurrents, and material entities as well as information content entities +#local:projectUsesMaterialEntityContext a :ConfigContext ; +# :hasConfiguration local:projectUsesMaterialEntityConfig ; +# :configContextFor ; +# :qualifiedByDomain vivo:Project ; +# :qualifiedBy . ## Material Entity -local:bldgGeographicaLocationOfConfig a :ObjectPropertyDisplayConfig ; - :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; - :displayName "geographic location of" ; - vitro:displayRankAnnot 21; - vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; - vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; - :propertyGroup . +#local:projectUsesMaterialEntityConfig a :ObjectPropertyDisplayConfig ; +# :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; +# :displayName "uses specimen, equipment, instrument, organism, reagent, or software" ; +# vitro:displayRankAnnot 85; +# vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; +# vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; +# vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; +# vitro:selectFromExistingAnnot "true"^^xsd:boolean ; +# :propertyGroup . -local:projectUsesMaterialEntityContext a :ConfigContext ; - :hasConfiguration local:projectUsesMaterialEntityConfig ; - :configContextFor ; - :qualifiedByDomain vivo:Project ; - :qualifiedBy . ## Material Entity +#local:materialEntityUsedByProjectContext a :ConfigContext ; +# :hasConfiguration local:MaterialEntityUsedByProjectConfig ; +# :configContextFor ; +# :qualifiedByDomain ; ## Material Entity +# :qualifiedBy vivo:Project . -local:projectUsesMaterialEntityConfig a :ObjectPropertyDisplayConfig ; - :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; - :displayName "uses equipment or instrument" ; - vitro:displayRankAnnot 85; - vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; - vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; - :propertyGroup . - -local:materialEntityUsedByProjectContext a :ConfigContext ; - :hasConfiguration local:MaterialEntityUsedByProjectConfig ; - :configContextFor ; - :qualifiedByDomain ; ## Material Entity - :qualifiedBy vivo:Project . - -local:materialEntityUsedByProjectConfig a :ObjectPropertyDisplayConfig ; - :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; - :displayName "used by project" ; - vitro:displayRankAnnot 85; - vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; - vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; - :propertyGroup . +#local:materialEntityUsedByProjectConfig a :ObjectPropertyDisplayConfig ; +# :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; +# :displayName "used by project" ; +# vitro:displayRankAnnot 85; +# vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; +# vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; +# vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; +# vitro:selectFromExistingAnnot "true"^^xsd:boolean ; +# :propertyGroup . local:facilityLocationOfEquipmentContext a :ConfigContext ; :hasConfiguration local:facilityLocationOfEquipmentConfig ; - :configContextFor ; + :configContextFor ; ## location of :qualifiedByDomain ; ## Site :qualifiedBy . ## Material Entity @@ -1312,11 +1369,13 @@ local:facilityLocationOfEquipmentConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 14; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; - :propertyGroup . + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; + :propertyGroup . local:facilityLocationOfServiceContext a :ConfigContext ; :hasConfiguration local:facilityLocationOfServiceConfig ; - :configContextFor ; + :configContextFor ; ## location of :qualifiedByDomain vivo:Facility ; :qualifiedBy . @@ -1326,7 +1385,7 @@ local:facilityLocationOfServiceConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 18; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; - :propertyGroup ; + :propertyGroup ; vitro:publicDescriptionAnnot "This relates a facility as being used for a particular service."^^xsd:string ; vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; vitro:selectFromExistingAnnot "true"^^xsd:boolean . @@ -1343,6 +1402,8 @@ local:courseOfferedByConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 2; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:orgOffersCourseContext a :ConfigContext ; @@ -1459,6 +1520,8 @@ local:grantHasSubgrantConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 30; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:grantIsSubgrantOfContext a :ConfigContext ; @@ -1473,6 +1536,8 @@ local:grantIsSubgrantOfConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 32; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:grantGeographicFocusContext a :ConfigContext ; @@ -1487,6 +1552,8 @@ local:grantGeographicFocusConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 20; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:selectFromExistingAnnot "true"^^xsd:boolean ; :propertyGroup . local:awardOrHonorReceiptsContext a :ConfigContext ; @@ -1576,7 +1643,7 @@ local:orgAwardsGrantConfig a :ObjectPropertyDisplayConfig ; local:addressLocationContext a :ConfigContext ; :hasConfiguration local:addressLocationConfig ; - :configContextFor ; + :configContextFor ; ## located in :qualifiedByDomain ; :qualifiedBy vivo:GeographicLocation . @@ -1586,6 +1653,7 @@ local:addressLocationConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 2; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; :propertyGroup . ### roles using the BFO_0000055 property ### @@ -1647,4 +1715,4 @@ local:yearAwardedConfig a :ObjectPropertyDisplayConfig ; vitro:displayRankAnnot 10; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; - :propertyGroup . + :propertyGroup . diff --git a/rdf/tbox/filegraph/data-properties.owl b/rdf/tbox/filegraph/data-properties.owl index 5799c1e7..b7eaf46e 100644 --- a/rdf/tbox/filegraph/data-properties.owl +++ b/rdf/tbox/filegraph/data-properties.owl @@ -1132,17 +1132,8 @@ - - - - - - - - - @@ -1259,30 +1250,6 @@ - - - - - PERSON: Melissa Haendel - PERSON: Melissa Haendel - The accession number for a gene. - Unique identifier of a biological polymer sequence (DNA, RNA, protein) when it is submitted to a sequence database. - accession number - - - - - - - - - - - - - - - diff --git a/rdf/tbox/filegraph/geo-political.owl b/rdf/tbox/filegraph/geo-political.owl index 115b7009..43d4c5ac 100644 --- a/rdf/tbox/filegraph/geo-political.owl +++ b/rdf/tbox/filegraph/geo-political.owl @@ -738,7 +738,7 @@ - + United Nations statistics department http://unstats.un.org/unsd/methods/m49/m49regin.htm @@ -1081,8 +1081,7 @@ - - + A large contiguous landmass that is at least partially surrounded by water, together with any islands on its continental shelf. Short Definition take from http://en.wiktionary.org/wiki/continent. The seven commonly recognized continents are Africa; Antarctica; Asia; Australia; Europe; North America; South America @@ -1155,21 +1154,7 @@ Smaller administrative division into which a country may be divided. - - - - - - - - Any region that goes beyond national boundaries and does not fit into any subclass of core:TransnationalRegion. - None as yet. - Not sure how to access the "Editor's Comments". But as North America is a continent, it would be placed directly into the continent subclass and viewable through this class along with any other subclass entities. - sub-Saharan Africa, North America - - - diff --git a/rdf/tbox/filegraph/object-properties.owl b/rdf/tbox/filegraph/object-properties.owl index 6820cc96..f9037fbf 100644 --- a/rdf/tbox/filegraph/object-properties.owl +++ b/rdf/tbox/filegraph/object-properties.owl @@ -351,61 +351,6 @@ - - - - - Imaging processing software that requires .jpg format files for analysis. - PERSON: Carlo Torniai - PERSON: Melissa Haendel - Software data input format. - has input format - - - - - - - - - - - - - - - - - - - Microsoft Excel arranges and saves data in .xlsx format. - PERSON: Carlo Torniai - PERSON: Melissa Haendel - Software data output type. - has output format - - - - - - - - - - - - ImageJ software measures characteristics of digital images. - PERSON: Carlo Torniai - PERSON: Melissa Haendel - Transformation objective of the software. - achieves objective - - - - - - - @@ -631,24 +576,6 @@ - - - - - PERSON: Melissa Haendel - PERSON: Melissa Haendel - Paraffin embedding of tissue. - Technique used to prepare the biological specimen. - has preparation technique - - - - - - - - - @@ -699,48 +626,6 @@ - - - - - - - - - - - - - - - - Is a legal instrument (usually by way of contract law) governing the usage or redistribution of software. - PERSON: Scott Hoffmann - http://en.wikipedia.org/wiki/Software_license - - - - - - - - - - - - Links an objective to a software operation whise execution achieves the objective. Is different from OBI:objective_achieved_by which links an objective to the process that achieves it. - PERSON:Matthew Brush - PERSON:Matthew Brush - a relation between a software objective (data transformation objective) and an operation whose execution in a software tool achieves the objective - software relation expanding to something like: - -objective_achieved_by some ('software/algorithm execution' and (specified_by some 'data processing operation')) - - - - - - @@ -1935,14 +1820,6 @@ there is a measurement process p that has specified output m, a measurement datu - - - - - - - - diff --git a/rdf/tbox/filegraph/research-resource.owl b/rdf/tbox/filegraph/research-resource.owl index 5d90bd3a..997bd64d 100644 --- a/rdf/tbox/filegraph/research-resource.owl +++ b/rdf/tbox/filegraph/research-resource.owl @@ -153,6 +153,7 @@ + @@ -491,4 +492,21 @@ + + + + + + GROUP: OBI Biomaterial Branch + A material entity that is an individual living system, such as animal, plant, bacteria or virus, that is capable of replicating or reproducing, growth and maintenance in the right environment. An organism may be unicellular or made up, like humans, of many billions of cells divided into specialized tissues and organs. + WEB: http://en.wikipedia.org/wiki/Organism + animal + fungus + organism + plant + virus + + + + diff --git a/rdf/tbox/firsttime/initialTBoxAnnotations.n3 b/rdf/tbox/firsttime/initialTBoxAnnotations.n3 index 3bf5bebb..9affa1b9 100644 --- a/rdf/tbox/firsttime/initialTBoxAnnotations.n3 +++ b/rdf/tbox/firsttime/initialTBoxAnnotations.n3 @@ -66,12 +66,10 @@ vivo:dateTimeValue "5"^^xsd:int ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; - vitro:inPropertyGroupAnnot - ; - vitro:offerCreateNewOptionAnnot - "true"^^xsd:boolean ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean ; vitro:selectFromExistingAnnot "false"^^xsd:boolean . @@ -166,7 +164,6 @@ geo:non_self_governing "-1"^^xsd:int ; vitro:displayRankAnnot "-1"^^xsd:int ; - vitro:inClassGroup ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot @@ -402,7 +399,8 @@ obo:OBI_0000643 rdfs:label "has grain"@en-US . obo:OBI_0000272 - rdfs:label "Protocol"@en-US . + rdfs:label "Protocol"@en-US ; + vitro:inClassGroup . vcard:Identification rdfs:label "Identification"@en-US . @@ -472,29 +470,33 @@ bibo:Manuscript . owl:sameAs - a owl:ObjectProperty ; + a owl:ObjectProperty ; rdfs:domain owl:Thing ; rdfs:label "mismo que"@es , "same as"@en-US ; rdfs:range owl:Thing ; rdfs:subPropertyOf owl:topObjectProperty ; vitro:displayLimitAnnot "5" ; + vitro:displayRankAnnot + "1"^^xsd:int ; vitro:forceStubDeletionAnnot "false"^^xsd:boolean ; vitro:fullPropertyNameAnnot "sameAs" ; vitro:inPropertyGroupAnnot - ; + ; vitro:offerCreateNewOptionAnnot - "false"^^xsd:boolean ; + "true"^^xsd:boolean ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; vitro:publicDescriptionAnnot "This is the OWL property to link two indivdiuals with the same 'identity'. see http://www.w3.org/TR/owl-ref/#sameAs-def"@en-US ; vitro:selectFromExistingAnnot "true"^^xsd:boolean ; vitro:stubObjectPropertyAnnot - "true"^^xsd:boolean . + "false"^^xsd:boolean . vcard:hasTimeZone rdfs:label "has time zone"@en-US . @@ -532,7 +534,6 @@ vivo:SubnationalRegion "-1"^^xsd:int ; vitro:displayRankAnnot "-1"^^xsd:int ; - vitro:inClassGroup ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot @@ -547,7 +548,6 @@ geo:territory "-1"^^xsd:int ; vitro:displayRankAnnot "-1"^^xsd:int ; - vitro:inClassGroup ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot @@ -556,13 +556,6 @@ geo:territory vcard:OrganizationName rdfs:label "Organization Name"@en-US . -obo:ERO_0000076 - rdfs:label "has input type"@en-US ; - vitro:hiddenFromDisplayBelowRoleLevelAnnot - ; - vitro:prohibitedFromUpdateBelowRoleLevelAnnot - . - vivo:researchAreaOf rdfs:label "research area of"@en-US ; vitro:displayLimitAnnot @@ -705,13 +698,6 @@ obo:IAO_0000142 vivo:submitted rdfs:label "submitted"@en-US . -obo:ERO_0000077 - rdfs:label "has output type"@en-US ; - vitro:hiddenFromDisplayBelowRoleLevelAnnot - ; - vitro:prohibitedFromUpdateBelowRoleLevelAnnot - . - bibo:Issue rdfs:label "Issue"@en-US ; vitro:displayLimitAnnot @@ -797,9 +783,6 @@ vitro:moniker vitro:prohibitedFromUpdateBelowRoleLevelAnnot . -obo:ERO_0000078 - rdfs:label "achieves objective"@en-US . - geo:codeFAOSTAT rdfs:label "codeFAOSTAT"@en-US ; vitro:hiddenFromDisplayBelowRoleLevelAnnot @@ -969,7 +952,6 @@ geo:disputed "-1"^^xsd:int ; vitro:displayRankAnnot "-1"^^xsd:int ; - vitro:inClassGroup ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot @@ -1009,9 +991,6 @@ vivo:Continent vitro:prohibitedFromUpdateBelowRoleLevelAnnot . -obo:ERO_0001908 - rdfs:label "objective achieved by operation"@en-US . - geo:nameOfficialRU rdfs:label "nameOfficialRU"@en-US ; vitro:hiddenFromDisplayBelowRoleLevelAnnot @@ -1245,13 +1224,13 @@ obo:IAO_0000007 vivo:expirationDate rdfs:label "expiration date"@en-US ; vitro:displayLimitAnnot - "5"^^xsd:int ; + "1"^^xsd:int ; vitro:displayRankAnnot - "6"^^xsd:int ; + "19"^^xsd:int ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:inPropertyGroupAnnot - ; + ; vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot @@ -1373,9 +1352,6 @@ vivo:PopulatedPlace vitro:prohibitedFromUpdateBelowRoleLevelAnnot . -obo:ERO_0001811 - rdfs:label "has format"@en-US . - vivo:FacultyAdministrativePosition rdfs:label "Faculty Administrative Position"@en-US ; vitro:displayLimitAnnot @@ -1649,7 +1625,7 @@ vivo:Contract "-1"^^xsd:int ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; - vitro:inClassGroup ; + vitro:inClassGroup ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot . @@ -1775,7 +1751,18 @@ vivo:Librarian . obo:ERO_0000050 - rdfs:label "model number"@en-US . + rdfs:label "model number"@en-US ; + vitro:displayLimitAnnot + "2"^^xsd:int ; + vitro:displayRankAnnot + "76"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + . + geo:nameCurrencyFR rdfs:label "nameCurrencyFR"@en-US ; @@ -1858,8 +1845,22 @@ bibo:doi bibo:accepted rdfs:label "accepted"@en-US . -obo:ERO_0000070 - rdfs:label "used by"@en-US . +obo:ERO_0000070 ## inverse of ERO_0000031 + rdfs:label "used by"@en-US ; +# vitro:displayLimitAnnot +# "2"^^xsd:int ; +# vitro:displayRankAnnot +# "15"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + . +# vitro:inPropertyGroupAnnot +# ; +# vitro:selectFromExistingAnnot +# "true"^^xsd:boolean ; +# vitro:offerCreateNewOptionAnnot +# "true"^^xsd:boolean . vcard:Email rdfs:label "Email"@en-US . @@ -2293,7 +2294,7 @@ vivo:description vitro:displayLimitAnnot "3"^^xsd:int ; vitro:displayRankAnnot - "5"^^xsd:int ; + "1"^^xsd:int ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:inPropertyGroupAnnot @@ -2518,8 +2519,18 @@ bibo:identifier "Unique identifier of a document or collection. This data property is not seen or updated by anyone."^^xsd:string . obo:ERO_0000044 - rdfs:label "has inventory number"@en-US . - + rdfs:label "inventory number"@en-US ; + vitro:displayLimitAnnot + "2"^^xsd:int ; + vitro:displayRankAnnot + "70"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + . + obo:ERO_0001261 rdfs:label "Analysis Service"@en-US ; vitro:inClassGroup . @@ -2624,9 +2635,6 @@ bibo:Website vitro:prohibitedFromUpdateBelowRoleLevelAnnot . -obo:ERO_0001057 - rdfs:label "has preparation technique"@en-US . - obo:BFO_0000003 rdfs:label "Occurrent" . @@ -2694,10 +2702,6 @@ obo:ERO_0000045 ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot ; - vitro:selectFromExistingAnnot - "true"^^xsd:boolean ; - vitro:offerCreateNewOptionAnnot - "true"^^xsd:boolean ; vitro:inPropertyGroupAnnot . @@ -2882,7 +2886,11 @@ obo:RO_0000052 . obo:OBI_0000299 - rdfs:label "has specified output"@en-US . + rdfs:label "has specified output"@en-US ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + . vivo:proceedingsOf rdfs:label "proceedings of"@en-US ; @@ -3616,7 +3624,21 @@ bibo:Proceedings . obo:OBI_0000293 - rdfs:label "has specified input"@en-US . + rdfs:label "has specified input"@en-US ; + vitro:displayLimitAnnot + "5"^^xsd:int ; + vitro:displayRankAnnot + "105"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . vivo:publisher rdfs:label "publisher"@en-US ; @@ -3705,7 +3727,7 @@ vivo:seatingCapacity vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:inPropertyGroupAnnot - ; + ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot ; vitro:publicDescriptionAnnot @@ -3928,7 +3950,23 @@ obo:ERO_0000572 rdfs:label "used to study"@en-US . obo:RO_0001000 - rdfs:label "derives from"@en-US . + rdfs:label "derives from"@en-US ; + ## note -- has a "some values from" restriction on Organism +# vitro:displayLimitAnnot +# "5"^^xsd:int ; +# vitro:displayRankAnnot +# "50"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + . +# vitro:inPropertyGroupAnnot +# ; +# vitro:selectFromExistingAnnot +# "true"^^xsd:boolean ; +# vitro:offerCreateNewOptionAnnot +# "true"^^xsd:boolean . + bibo:gtin14 rdfs:label "Global Trade Item Number (GTIN-14)"@en-US ; @@ -3985,7 +4023,17 @@ vcard:Fax rdfs:label "Fax"@en-US . obo:ERO_0001521 - rdfs:label "human study performed by"@en-US . + rdfs:label "performed by organization"@en-US ; + vitro:displayRankAnnot + "20"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; + vitro:inPropertyGroupAnnot + . + vivo:nihmsid rdfs:label "NIH Manuscript Submission System ID"@en-US ; @@ -4147,9 +4195,6 @@ vivo:Screenplay vitro:prohibitedFromUpdateBelowRoleLevelAnnot . -obo:ERO_0001824 - rdfs:label "has software license"@en-US . - geo:nameOfficialAR rdfs:label "nameOfficialAR"@en-US ; vitro:hiddenFromDisplayBelowRoleLevelAnnot @@ -4646,22 +4691,22 @@ vcard:hasLanguage vcard:hasURL rdfs:label "has URL"@en-US . -obo:ERO_0000482 +obo:ERO_0000482 # deprecated rdfs:label "uses software"@en-US ; - vitro:displayLimitAnnot - "5"^^xsd:int ; - vitro:displayRankAnnot - "92"^^xsd:int ; +# vitro:displayLimitAnnot +# "5"^^xsd:int ; +# vitro:displayRankAnnot +# "92"^^xsd:int ; vitro:hiddenFromDisplayBelowRoleLevelAnnot - ; + ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot - ; - vitro:selectFromExistingAnnot - "true"^^xsd:boolean ; - vitro:offerCreateNewOptionAnnot - "true"^^xsd:boolean ; - vitro:inPropertyGroupAnnot - . + . +# vitro:selectFromExistingAnnot +# "true"^^xsd:boolean ; +# vitro:offerCreateNewOptionAnnot +# "true"^^xsd:boolean ; +# vitro:inPropertyGroupAnnot +# . vivo:ResearchProposal rdfs:label "Research Proposal"@en-US ; @@ -5226,18 +5271,6 @@ obo:ERO_0000783 vitro:prohibitedFromUpdateBelowRoleLevelAnnot . -vivo:TransnationalRegion - rdfs:label "Transnational Region"@en-US ; - vitro:displayLimitAnnot - "-1"^^xsd:int ; - vitro:displayRankAnnot - "-1"^^xsd:int ; - vitro:inClassGroup ; - vitro:hiddenFromDisplayBelowRoleLevelAnnot - ; - vitro:prohibitedFromUpdateBelowRoleLevelAnnot - . - vivo:termLabel rdfs:label "term label"@en-US ; vitro:displayRankAnnot @@ -5668,7 +5701,22 @@ geo:nameShortEN . obo:RO_0003001 - rdfs:label "produced by"@en-US . + rdfs:label "produced by"@en-US ; + vitro:displayLimitAnnot + "2"^^xsd:int ; + vitro:displayRankAnnot + "60"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . + rdfs:label "has global count source"@en-US ; @@ -5774,7 +5822,22 @@ vivo:hasSuccessorOrganization "true"^^xsd:boolean . obo:RO_0003000 - rdfs:label "produces"@en-US . + rdfs:label "produces"@en-US ; + vitro:displayLimitAnnot + "2"^^xsd:int ; + vitro:displayRankAnnot + "63"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . + vivo:prerequisiteFor rdfs:label "prerequisite for"@en-US ; @@ -5989,7 +6052,6 @@ vivo:GeopoliticalEntity "-1"^^xsd:int ; vitro:displayRankAnnot "-1"^^xsd:int ; - vitro:inClassGroup ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot @@ -6046,7 +6108,22 @@ vcard:Muse rdfs:label "Muse"@en-US . obo:ERO_0000034 - rdfs:label "has manufacturer"@en-US . + rdfs:label "manufacturer"@en-US ; +# vitro:displayLimitAnnot +# "2"^^xsd:int ; +# vitro:displayRankAnnot +# "73"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + . +# vitro:inPropertyGroupAnnot +# ; +# vitro:selectFromExistingAnnot +# "true"^^xsd:boolean ; +# vitro:offerCreateNewOptionAnnot +# "true"^^xsd:boolean . + geo:area rdfs:label "Area"@en-US ; @@ -6129,13 +6206,13 @@ geo:nameShortES vivo:dateIssued rdfs:label "date issued"@en-US ; vitro:displayLimitAnnot - "5"^^xsd:int ; + "1"^^xsd:int ; vitro:displayRankAnnot - "4"^^xsd:int ; + "19"^^xsd:int ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:inPropertyGroupAnnot - ; + ; vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot @@ -6403,7 +6480,21 @@ vcard:hasRelated rdfs:label "has related"@en-US . obo:ERO_0000424 - rdfs:label "has study population"@en-US . + rdfs:label "has study population"@en-US ; + vitro:displayLimitAnnot + "5"^^xsd:int ; + vitro:displayRankAnnot + "15"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . obo:ARG_2000079 rdfs:label "American Board of Pathology"@en-US . @@ -6457,7 +6548,22 @@ vivo:distributes "true"^^xsd:boolean . obo:OBI_0000304 - rdfs:label "is manufactured by"@en-US . + rdfs:label "manufactured by"@en-US ; + vitro:displayLimitAnnot + "2"^^xsd:int ; + vitro:displayRankAnnot + "73"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . + vcard:hasFormattedName rdfs:label "has formatted name"@en-US . @@ -6953,13 +7059,13 @@ vcard:hasSound vivo:dateFiled rdfs:label "date filed"@en-US ; vitro:displayLimitAnnot - "5"^^xsd:int ; + "1"^^xsd:int ; vitro:displayRankAnnot - "4"^^xsd:int ; + "19"^^xsd:int ; vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:inPropertyGroupAnnot - ; + ; vitro:individualSortDirectionAnnot "desc"^^xsd:string ; vitro:offerCreateNewOptionAnnot @@ -7155,8 +7261,6 @@ bibo:Statute vitro:prohibitedFromUpdateBelowRoleLevelAnnot . -obo:ERO_0000405 - rdfs:label "has accession number"@en-US . vivo:fundingVehicleFor rdfs:label "provides funding for"@en-US ; @@ -7237,10 +7341,38 @@ vivo:PostdoctoralTraining . obo:ERO_0000918 - rdfs:label "related research project"@en-US . + rdfs:label "related research project"@en-US ; + vitro:displayLimitAnnot + "2"^^xsd:int ; + vitro:displayRankAnnot + "20"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . obo:OBI_0000417 - rdfs:label "achieves planned objective"@en-US . + rdfs:label "achieves planned objective"@en-US ; + vitro:displayLimitAnnot + "5"^^xsd:int ; + vitro:displayRankAnnot + "95"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . vivo:preferredDisplayOrder rdfs:label "preferred display order"@en-US ; @@ -7285,7 +7417,21 @@ vcard:sound rdfs:label "sound"@en-US . obo:ERO_0000543 - rdfs:label "related technique"@en-US . + rdfs:label "related technique"@en-US ; + vitro:displayLimitAnnot + "5"^^xsd:int ; + vitro:displayRankAnnot + "80"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . bibo:numPages rdfs:label "number of pages"@en-US ; @@ -7417,7 +7563,7 @@ geo:GDPUnit vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot - . + . bibo:edition rdfs:label "edition"@en-US ; @@ -7486,8 +7632,22 @@ obo:OBI_0000011 rdfs:label "Planned Process"@en-US . obo:ERO_0000919 - rdfs:label "related biological specimen"@en-US . - + rdfs:label "related biological specimen"@en-US ; + vitro:displayLimitAnnot + "5"^^xsd:int ; + vitro:displayRankAnnot + "95"^^xsd:int ; + vitro:hiddenFromDisplayBelowRoleLevelAnnot + ; + vitro:inPropertyGroupAnnot + ; + vitro:prohibitedFromUpdateBelowRoleLevelAnnot + ; + vitro:selectFromExistingAnnot + "true"^^xsd:boolean ; + vitro:offerCreateNewOptionAnnot + "true"^^xsd:boolean . + bibo:status rdfs:label "status"@en-US ; vitro:displayLimitAnnot @@ -7567,7 +7727,7 @@ vivo:hasEquipment vitro:hiddenFromDisplayBelowRoleLevelAnnot ; vitro:inPropertyGroupAnnot - ; + ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot ; vitro:selectFromExistingAnnot @@ -7608,3 +7768,11 @@ vivo:hasEquipment ; vitro:selectFromExistingAnnot "true"^^xsd:boolean . + + + rdfs:label "Organism"@en-US ; + vitro:inClassGroup ; ## classgroup label is research + vitro:displayRankAnnot + "1"^^xsd:int . + + diff --git a/src/edu/cornell/mannlib/semservices/bo/Day.java b/src/edu/cornell/mannlib/semservices/bo/Day.java deleted file mode 100644 index 1decc4e3..00000000 --- a/src/edu/cornell/mannlib/semservices/bo/Day.java +++ /dev/null @@ -1,751 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.semservices.bo; - -import java.util.Calendar; -import java.util.Date; -import java.util.TimeZone; - -import edu.cornell.mannlib.semservices.util.DateUtils; - -/** - * A time-less and immutable Date class for basic date arithmetics. - * - * @author Jacob Dreyer - */ -public class Day implements Comparable { - /** The back end calendar instance of this day. */ - protected Calendar calendar_ = Calendar.getInstance(); - - /** - * Create a new day. The day is lenient meaning that illegal day parameters - * can be specified and results in a recomputed day with legal month/day - * values. - * - * @param year - * Year of new day. - * @param month - * Month of new day (0-11) - * @param dayOfMonth - * Day of month of new day (1-31) - */ - public Day(int year, int month, int dayOfMonth) { - initialize(year, month, dayOfMonth); - } - - /** - * Create a new day, specifying the year and the day of year. The day is - * lenient meaning that illegal day parameters can be specified and results - * in a recomputed day with legal month/day values. - * - * @param year - * Year of new day. - * @param dayOfYear - * 1=January 1, etc. - */ - public Day(int year, int dayOfYear) { - initialize(year, Calendar.JANUARY, 1); - calendar_.set(Calendar.DAY_OF_YEAR, dayOfYear); - } - - /** - * Create a new day representing the day of creation (according to the - * setting of the current machine). - */ - public Day() { - // Now (in the current locale of the client machine) - Calendar calendar = Calendar.getInstance(); - - // Prune time part - initialize(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), - calendar.get(Calendar.DAY_OF_MONTH)); - } - - /** - * Create a new day based on a java.util.Calendar instance. NOTE: The time - * component from calendar will be pruned. - * - * @param calendar - * Calendar instance to copy. - * @throws IllegalArgumentException - * If calendar is null. - */ - public Day(Calendar calendar) { - if (calendar == null) - throw new IllegalArgumentException("calendar cannot be null"); - - initialize(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), - calendar.get(Calendar.DAY_OF_MONTH)); - } - - /** - * Create a new day based on a java.util.Date instance. NOTE: The time - * component from date will be pruned. - * - * @param date - * Date instance to copy. - * @throws IllegalArgumentException - * If date is null. - */ - public Day(Date date) { - if (date == null) - throw new IllegalArgumentException("date cannot be null"); - - // Create a calendar based on given date - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - - // Extract date values and use these only - initialize(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), - calendar.get(Calendar.DAY_OF_MONTH)); - } - - /** - * Create a new day based on a time value. Time is milliseconds since - * "the Epoch" (1.1.1970). NOTE: The time component from time will be pruned. - * - * @param time - * Milliseconds since "the Epoch". - */ - public Day(long time) { - this(new Date(time)); - } - - /** - * Create a new day as a copy of the specified day. - * - * @param day - * Day to clone. - * @throws IllegalArgumentException - * If day is null. - */ - public Day(Day day) { - if (day == null) - throw new IllegalArgumentException("day cannot be null"); - - initialize(day.getYear(), day.getMonth(), day.getDayOfMonth()); - } - - /** - * Initialize the internal calendar instance. - * - * @param year - * Year of new day. - * @param month - * Month of new day. - * @param dayOfMonth - * Day of month of new day. - */ - private void initialize(int year, int month, int dayOfMonth) { - calendar_.setLenient(true); - calendar_.setFirstDayOfWeek(Calendar.MONDAY); - calendar_.setTimeZone(TimeZone.getDefault()); - calendar_.set(Calendar.YEAR, year); - calendar_.set(Calendar.MONTH, month); - calendar_.set(Calendar.DAY_OF_MONTH, dayOfMonth); - - // Prune the time component - calendar_.set(Calendar.HOUR_OF_DAY, 0); - calendar_.set(Calendar.MINUTE, 0); - calendar_.set(Calendar.SECOND, 0); - calendar_.set(Calendar.MILLISECOND, 0); - } - - /** - * A more explicit front-end to the Day() constructor which return a day - * object representing the day of creation. - * - * @return A day instance representing today. - */ - public static Day today() { - return new Day(); - } - - /** - * Return a Calendar instance representing the same day as this instance. For - * use by secondary methods requiring java.util.Calendar as input. - * - * @return Calendar equivalent representing this day. - */ - public Calendar getCalendar() { - return (Calendar) calendar_.clone(); - } - - /** - * Return a Date instance representing the same date as this instance. For - * use by secondary methods requiring java.util.Date as input. - * - * @return Date equivalent representing this day. - */ - public Date getDate() { - return getCalendar().getTime(); - } - - /** - * Compare this day to the specified day. If object is not of type Day a - * ClassCastException is thrown. - * - * @param day - * Day object to compare to. - * @return @see Comparable#compareTo(Object) - * @throws IllegalArgumentException - * If day is null. - */ - public int compareTo(Day day) { - if (day == null) - throw new IllegalArgumentException("day cannot be null"); - - return calendar_.getTime().compareTo(day.calendar_.getTime()); - } - - /** - * Return true if this day is after the specified day. - * - * @param day - * Day to compare to. - * @return True if this is after day, false otherwise. - * @throws IllegalArgumentException - * If day is null. - */ - public boolean isAfter(Day day) { - if (day == null) - throw new IllegalArgumentException("day cannot be null"); - - return calendar_.after(day.calendar_); - } - - /** - * Return true if this day is before the specified day. - * - * @param day - * Day to compare to. - * @return True if this is before day, false otherwise. - * @throws IllegalArgumentException - * If day is null. - */ - public boolean isBefore(Day day) { - if (day == null) - throw new IllegalArgumentException("day cannot be null"); - - return calendar_.before(day.calendar_); - } - - /** - * Return true if this day equals (represent the same date) as the specified - * day. - * - * @param object - * Object to compare to. - * @return True if this equals day, false otherwise. - * @throws IllegalArgumentException - * If day is null. - */ - @Override - public boolean equals(Object object) { - Day day = (Day) object; - - if (day == null) - throw new IllegalArgumentException("day cannot be null"); - - return calendar_.equals(day.calendar_); - } - - /** - * Overload required as default definition of equals() has changed. - * - * @return A hash code value for this object. - */ - @Override - public int hashCode() { - return calendar_.hashCode(); - } - - /** - * Return year of this day. - * - * @return Year of this day. - */ - public int getYear() { - return calendar_.get(Calendar.YEAR); - } - - - - /** - * Return month of this day. The result must be compared to Calendar.JANUARY, - * Calendar.FEBRUARY, etc. - * - * @return Month of this day. - */ - public int getMonth() { - return calendar_.get(Calendar.MONTH); - } - - public String getMonthName() { - switch (getMonth()) { - case Calendar.JANUARY: - return "January"; - case Calendar.FEBRUARY: - return "February"; - case Calendar.MARCH: - return "March"; - case Calendar.APRIL: - return "April"; - case Calendar.MAY: - return "May"; - case Calendar.JUNE: - return "June"; - case Calendar.JULY: - return "July"; - case Calendar.AUGUST: - return "August"; - case Calendar.SEPTEMBER: - return "September"; - case Calendar.OCTOBER: - return "October"; - case Calendar.NOVEMBER: - return "November"; - case Calendar.DECEMBER: - return "December"; - default: - assert false : "Invalid mongth: " + getMonth(); - } - - // This will never happen - return ""; - } - - /** - * Return the 1-based month number of the month of this day. 1 = January, 2 = - * February and so on. - * - * @return Month number of this month - */ - public int getMonthNo() { - // It is tempting to return getMonth() + 1 but this is conceptually - // wrong, as Calendar month is an enumeration and the values are tags - // only and can be anything. - switch (getMonth()) { - case Calendar.JANUARY: - return 1; - case Calendar.FEBRUARY: - return 2; - case Calendar.MARCH: - return 3; - case Calendar.APRIL: - return 4; - case Calendar.MAY: - return 5; - case Calendar.JUNE: - return 6; - case Calendar.JULY: - return 7; - case Calendar.AUGUST: - return 8; - case Calendar.SEPTEMBER: - return 9; - case Calendar.OCTOBER: - return 10; - case Calendar.NOVEMBER: - return 11; - case Calendar.DECEMBER: - return 12; - default: - assert false : "Invalid mongth: " + getMonth(); - } - - // This will never happen - return 0; - } - - /** - * Return day of month of this day. NOTE: First day of month is 1 (not 0). - * - * @return Day of month of this day. - */ - public int getDayOfMonth() { - return calendar_.get(Calendar.DAY_OF_MONTH); - } - - /** - * Return the day number of year this day represents. January 1 = 1 and so - * on. - * - * @return day number of year. - */ - public int getDayOfYear() { - return calendar_.get(Calendar.DAY_OF_YEAR); - } - - /** - * Return the day of week of this day. NOTE: Must be compared to - * Calendar.MONDAY, TUSEDAY etc. - * - * @return Day of week of this day. - */ - public int getDayOfWeek() { - return calendar_.get(Calendar.DAY_OF_WEEK); - } - - /** - * Return the day number of week of this day, where Monday=1, Tuesday=2, ... - * Sunday=7. - * - * @return Day number of week of this day. - */ - public int getDayNumberOfWeek() { - return getDayOfWeek() == Calendar.SUNDAY ? 7 : getDayOfWeek() - - Calendar.SUNDAY; - } - - /** - * Return the week number of year, this day belongs to. 1st=1 and so on. - * - * @return Week number of year of this day. - */ - public int getWeekOfYear() { - return calendar_.get(Calendar.WEEK_OF_YEAR); - } - - /** - * Return a day which is the given number of days after this day. - * - * @param nDays - * Number of days to add. May be negative. - * @return Day as requested. - */ - public Day addDays(int nDays) { - // Create a clone - Calendar calendar = (Calendar) calendar_.clone(); - - // Add/remove the specified number of days - calendar.add(Calendar.DAY_OF_MONTH, nDays); - - // Return new instance - return new Day(calendar); - } - - /** - * Subtract a number of days from this day. - * - * @param nDays - * Number of days to subtract. - * @return Day as requested. - */ - public Day subtractDays(int nDays) { - return addDays(-nDays); - } - - /** - * Return a day wich is a given number of month after this day. - * - * The actual number of days added depends on the staring day. Subtracting a - * number of months can be done by a negative argument to addMonths() or - * calling subtactMonths() explicitly. NOTE: addMonth(n) m times will in - * general give a different result than addMonth(m*n). Add 1 month to January - * 31, 2005 will give February 28, 2005. - * - * @param nMonths - * Number of months to add. - * @return Day as requested. - */ - public Day addMonths(int nMonths) { - // Create a clone - Calendar calendar = (Calendar) calendar_.clone(); - - // Add/remove the specified number of days - calendar.add(Calendar.MONTH, nMonths); - - // Return new instance - return new Day(calendar); - } - - /** - * Subtract a number of months from this day. - * - * @see #addMonths(int). - * - * @param nMonths - * Number of months to subtract. - * @return Day as requested. - */ - public Day subtractMonths(int nMonths) { - return addMonths(-nMonths); - } - - /** - * Return a day wich is a given number of years after this day. - * - * Add a number of years to this day. The actual number of days added depends - * on the starting day. Subtracting a number of years can be done by a - * negative argument to addYears() or calling subtractYears explicitly. - * - * @param nYears - * Number of years to add. - * @return Day as requested. - */ - public Day addYears(int nYears) { - // Create a clone - Calendar calendar = (Calendar) calendar_.clone(); - - // Add/remove the specified number of days - calendar.add(Calendar.YEAR, nYears); - - // Return new instance - return new Day(calendar); - } - - /** - * Subtract a number of years from this day. - * - * @see #addYears(int). - * - * @param nYears - * Number of years to subtract. - * @return Day as requested. - */ - public Day subtractYears(int nYears) { - return addYears(-nYears); - } - - /** - * Return the number of days in the year of this day. - * - * @return Number of days in this year. - */ - public int getDaysInYear() { - return calendar_.getActualMaximum(Calendar.DAY_OF_YEAR); - } - - /** - * Return true if the year of this day is a leap year. - * - * @return True if this year is a leap year, false otherwise. - */ - public boolean isLeapYear() { - return getDaysInYear() == calendar_.getMaximum(Calendar.DAY_OF_YEAR); - } - - /** - * Return true if the specified year is a leap year. - * - * @param year - * Year to check. - * @return True if specified year is leap year, false otherwise. - */ - public static boolean isLeapYear(int year) { - return (new Day(year, Calendar.JANUARY, 1)).isLeapYear(); - } - - /** - * Return the number of days in the month of this day. - * - * @return Number of days in this month. - */ - public int getDaysInMonth() { - return calendar_.getActualMaximum(Calendar.DAY_OF_MONTH); - } - - - - /** - * Get default locale name of this day ("Monday", "Tuesday", etc. - * - * @return Name of day. - */ - public String getDayName() { - switch (getDayOfWeek()) { - case Calendar.MONDAY: - return "Monday"; - case Calendar.TUESDAY: - return "Tuesday"; - case Calendar.WEDNESDAY: - return "Wednesday"; - case Calendar.THURSDAY: - return "Thursday"; - case Calendar.FRIDAY: - return "Friday"; - case Calendar.SATURDAY: - return "Saturday"; - case Calendar.SUNDAY: - return "Sunday"; - default: - assert false : "Invalid day of week: " + getDayOfWeek(); - } - - // This will never happen - return null; - } - - /** - * Get default locale name of this day ("Monday", "Tuesday", etc. - * - * @return Name of day. - */ - public String getShortDayName() { - switch (getDayOfWeek()) { - case Calendar.MONDAY: - return "Mon"; - case Calendar.TUESDAY: - return "Tue"; - case Calendar.WEDNESDAY: - return "Wed"; - case Calendar.THURSDAY: - return "Thu"; - case Calendar.FRIDAY: - return "Fri"; - case Calendar.SATURDAY: - return "Sat"; - case Calendar.SUNDAY: - return "Sun"; - default: - assert false : "Invalid day of week: " + getDayOfWeek(); - } - - // This will never happen - return null; - } - - /** - * Return number of days between two days. The method always returns a - * positive number of days. - * - * @param day - * The day to compare to. - * @return Number of days between this and day. - * @throws IllegalArgumentException - * If day is null. - */ - public int daysBetween(Day day) { - if (day == null) - throw new IllegalArgumentException("day cannot be null"); - - long millisBetween = Math.abs(calendar_.getTime().getTime() - - day.calendar_.getTime().getTime()); - return (int) Math.round(millisBetween / (1000 * 60 * 60 * 24)); - } - - /** - * Find the n'th xxxxday of s specified month (for instance find 1st sunday - * of May 2006; findNthOfMonth (1, Calendar.SUNDAY, Calendar.MAY, 2006); - * Return null if the specified day doesn't exists. - * - * @param n - * Nth day to look for. - * @param dayOfWeek - * Day to look for (Calendar.XXXDAY). - * @param month - * Month to check (Calendar.XXX). - * @param year - * Year to check. - * @return Required Day (or null if non-existent) - * @throws IllegalArgumentException - * if dyaOfWeek parameter doesn't represent a valid day. - */ - public static Day getNthOfMonth(int n, int dayOfWeek, int month, int year) { - // Validate the dayOfWeek argument - - if (dayOfWeek < 1 || dayOfWeek > 7) - throw new IllegalArgumentException("Invalid day of week: " + dayOfWeek); - - Day first = new Day(year, month, 1); - - int offset = dayOfWeek - first.getDayOfWeek(); - if (offset < 0) - offset = 7 + offset; - - int dayNo = (n - 1) * 7 + offset + 1; - - return dayNo > first.getDaysInMonth() ? null - : new Day(year, month, dayNo); - } - - /** - * Find the first of a specific day in a given month. For instance first - * Tuesday of May: getFirstOfMonth(Calendar.TUESDAY, Calendar.MAY, 2005); - * - * @param dayOfWeek - * Weekday to get. - * @param month - * Month of day to get. - * @param year - * Year of day to get. - * @return The requested day. - */ - public static Day getFirstOfMonth(int dayOfWeek, int month, int year) { - return Day.getNthOfMonth(1, dayOfWeek, month, year); - } - - /** - * Find the last of a specific day in a given month. For instance last - * Tuesday of May: getLastOfMonth (Calendar.TUESDAY, Calendar.MAY, 2005); - * - * @param dayOfWeek - * Weekday to get. - * @param month - * Month of day to get. - * @param year - * Year of day to get. - * @return The requested day. - */ - public static Day getLastOfMonth(int dayOfWeek, int month, int year) { - Day day = Day.getNthOfMonth(5, dayOfWeek, month, year); - return day != null ? day : Day.getNthOfMonth(4, dayOfWeek, month, year); - } - - public String getFormattedString(String fmt) { - return DateUtils.getFormattedDate(calendar_.getTime(), fmt); - } - - /** - * Return a scratch string representation of this day. Used for debugging - * only. The format of the day is yyyy-mm-dd - * - * @return A string representation of this day. - */ - @Override - public String toString() { - StringBuffer s = new StringBuffer(); - s.append(getYear()); - s.append('-'); - if (getMonth() < 9) - s.append('0'); - s.append(getMonth() + 1); - s.append('-'); - if (getDayOfMonth() < 10) - s.append('0'); - s.append(getDayOfMonth()); - return s.toString(); - } - - /** - * Testing this class. - * - * @param arguments - * Not used. - */ - public static void main(String[] arguments) { - // This proves that there are 912 days between the two major - // terrorist attacks, not 911 as is common knowledge. - Day september11 = new Day(2001, Calendar.SEPTEMBER, 11); - Day march11 = new Day(2004, Calendar.MARCH, 11); - System.out.println(september11.daysBetween(march11)); - - // This proves that Kennedy was president for 1037 days, - // not 1000 as is the popular belief nor 1036 which is the - // bluffers reply. Nerds knows when to add one... - Day precidency = new Day(1961, Calendar.JANUARY, 20); - Day assasination = new Day(1963, Calendar.NOVEMBER, 22); - System.out.println(precidency.daysBetween(assasination) + 1); - - // Niel Armstrong walked the moon on a Sunday - Day nielOnMoon = new Day(1969, Calendar.JULY, 20); - System.out.println("Niel Armstron walked on the moon on "+ nielOnMoon.getDayName()); - - // Find last tuesdays for 2005 - for (int i = 0; i < 12; i++) { - Day tuesday = Day.getLastOfMonth(Calendar.TUESDAY, i, 2005); - System.out.println(tuesday); - } - } -} diff --git a/src/edu/cornell/mannlib/semservices/bo/Time.java b/src/edu/cornell/mannlib/semservices/bo/Time.java deleted file mode 100644 index 546caa1a..00000000 --- a/src/edu/cornell/mannlib/semservices/bo/Time.java +++ /dev/null @@ -1,259 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.semservices.bo; - -import java.util.Date; -import java.util.Calendar; -import java.util.GregorianCalendar; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * A class representing a moment in time. Extends Day which represents the day - * of the moment, and defines the time within the day to millisecond accuracy. - * - * @author Jacob Dreyer (jacob.dreyer@geosoft.no) - */ -public class Time extends Day { - protected final Log logger = LogFactory.getLog(getClass()); - - protected static final Log staticlogger = LogFactory.getLog(Time.class); - - /** - * Instantiate a Time object. The time is lenient meaning that illegal day - * parameters can be specified and results in a recomputed day with legal - * month/day values. - * - * @param year Year of this time - * @param month Month of this time - * @param dayOfMonth Day of month of this time. - * @param hourOfDay Hours of this time [0-23] - * @param minutes Minutes of this time [0-23] - * @param seconds Seconds of this time [0-23] - */ - public Time(int year, int month, int dayOfMonth, int hourOfDay, int minutes, - int seconds) { - super(year, month, dayOfMonth); - setHourOfDay(hourOfDay); - setMinutes(minutes); - setSeconds(seconds); - } - - /** - * Constructor - * @param day - * @param hourOfDay - * @param minutes - * @param seconds - */ - public Time(Day day, int hourOfDay, int minutes, int seconds) { - this(day.getYear(), day.getMonth(), day.getDayOfMonth(), hourOfDay, - minutes, seconds); - } - - - /** - * Constructor - * @param hourOfDay - * @param minutes - * @param seconds - */ - public Time(int hourOfDay, int minutes, int seconds) { - this(new Day(), hourOfDay, minutes, seconds); - } - - /** - * Constructor - */ - public Time() { - calendar_ = new GregorianCalendar(); // Now - } - - // end of constructors - - // Get Methods - - public Date getDay() { - return calendar_.getTime(); - } - - public int getHour() { - return calendar_.get(Calendar.HOUR); - } - - public int getHourOfDay() { - return calendar_.get(Calendar.HOUR_OF_DAY); - } - - public int getMinutes() { - return calendar_.get(Calendar.MINUTE); - } - - public int getSeconds() { - return calendar_.get(Calendar.SECOND); - } - - public int getMilliSeconds() { - return calendar_.get(Calendar.MILLISECOND); - } - - public int getAmPm() { - return calendar_.get(Calendar.AM_PM); - } - - // set Methods - - public void setDay(Day day) { - setYear(day.getYear()); - setMonth(day.getMonth()); - setDayOfMonth(day.getDayOfMonth()); - } - - public void setYear(int year) { - calendar_.set(Calendar.YEAR, year); - } - - public void setMonth(int month) { - calendar_.set(Calendar.MONTH, month); - } - - public void setDayOfMonth(int dayOfMonth) { - calendar_.set(Calendar.DAY_OF_MONTH, dayOfMonth); - } - - public void setHourOfDay(int hourOfDay) { - calendar_.set(Calendar.HOUR_OF_DAY, hourOfDay); - } - - public void setHour(int hour) { - calendar_.set(Calendar.HOUR, hour); - } - - public void setAmPm(int amPm) { - calendar_.set(Calendar.AM_PM, amPm); - } - - public void setMinutes(int minutes) { - calendar_.set(Calendar.MINUTE, minutes); - } - - public void setSeconds(int seconds) { - calendar_.set(Calendar.SECOND, seconds); - } - - public void setMilliSeconds(int milliSeconds) { - calendar_.set(Calendar.MILLISECOND, milliSeconds); - } - - // Time modification methods - - public void addHours(int nHours) { - calendar_.add(Calendar.HOUR_OF_DAY, nHours); - } - - public void addMinutes(int nMinutes) { - calendar_.add(Calendar.MINUTE, nMinutes); - } - - public void addSeconds(int nSeconds) { - calendar_.add(Calendar.SECOND, nSeconds); - } - - public void addMilliSeconds(int nMilliSeconds) { - calendar_.add(Calendar.MILLISECOND, nMilliSeconds); - } - - public void subtractHours(int nHours) { - addHours(-nHours); - } - - public void subtractMinutes(int nMinutes) { - addMinutes(-nMinutes); - } - - public void subtractSeconds(int nSeconds) { - addSeconds(-nSeconds); - } - - // Time test methods - - public boolean isAfter(Time time) { - return calendar_.after(time.calendar_); - } - - public boolean isBefore(Time time) { - return calendar_.before(time.calendar_); - } - - public boolean equals(Time time) { - return calendar_.equals(time.calendar_); - } - - // Time difference methods - - public long milliSecondsBetween(Time time) { - long millisBetween = calendar_.getTime().getTime() - - time.calendar_.getTime().getTime(); - return millisBetween; - } - - public double secondsBetween(Time time) { - long millisBetween = calendar_.getTime().getTime() - - time.calendar_.getTime().getTime(); - return millisBetween / 1000; - } - - public double minutesBetween(Time time) { - long millisBetween = calendar_.getTime().getTime() - - time.calendar_.getTime().getTime(); - return millisBetween / (1000 * 60); - } - - public double hoursBetween(Time time) { - long millisBetween = calendar_.getTime().getTime() - - time.calendar_.getTime().getTime(); - return millisBetween / (1000 * 60 * 60); - } - - // Display methods - - public String toString() { - StringBuffer string = new StringBuffer(); - - if (getHour() == 0) { - string.append("12"); // display "12" for midnight - } else { - string.append(getHour()); - } - string.append(':'); - if (getMinutes() < 10) - string.append('0'); - string.append(getMinutes()); - - if (getAmPm() == Calendar.AM) { - string.append(" AM"); - } else { - string.append(" PM"); - } - return string.toString(); - } - - // Misc. methods - - public static Time getTimeFromSqlTime(java.sql.Time sqlTime) { - // staticlogger.info("sqlTime "+ sqlTime.toString()); - long ms = sqlTime.getTime(); - java.util.Calendar gcal = GregorianCalendar.getInstance(); - gcal.setTime(new Date(ms)); - Time time = new Time(gcal.get(Calendar.HOUR_OF_DAY), gcal - .get(Calendar.MINUTE), gcal.get(Calendar.SECOND)); - return time; - } - - public static void main(String args[]) { - Time time = new Time(12, 00, 00); - System.out.println(time); - } -} diff --git a/src/edu/cornell/mannlib/semservices/util/ClassUtils.java b/src/edu/cornell/mannlib/semservices/util/ClassUtils.java deleted file mode 100644 index 1c1c5ca0..00000000 --- a/src/edu/cornell/mannlib/semservices/util/ClassUtils.java +++ /dev/null @@ -1,154 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -/* - * $Id$ - * CONFIDENTIAL AND PROPRIETARY. ? 2007 Revolution Health Group LLC. All rights reserved. - * This source code may not be disclosed to others, used or reproduced without the written permission of Revolution Health Group. - * - */ -package edu.cornell.mannlib.semservices.util; - -import java.lang.reflect.Constructor; -import java.lang.reflect.GenericArrayType; -import java.lang.reflect.Method; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Proxy; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; - - -public class ClassUtils { - public static final String VERSION = "$Rev$"; - private static final Logger LOG = Logger.getLogger(ClassUtils.class); - - private ClassUtils() {} - - @SuppressWarnings("unchecked") - public static Method[] getMethods(Class clazz) { - if (Proxy.isProxyClass(clazz) && clazz.getInterfaces().length > 0 ) { - return clazz.getInterfaces()[0].getDeclaredMethods(); - } - - ArrayList methods = new ArrayList(); - Class interfaceClass = clazz; - // only change our classes - if ((interfaceClass.getPackage().getName().indexOf("java") != 0) && (interfaceClass != null)) { - if (!interfaceClass.isInterface()) { - Class[] interfaces = interfaceClass.getInterfaces(); - for (Class interfaceTemp : interfaces) { - if (interfaceTemp.isInterface()) { - methods.addAll(Arrays.asList(interfaceTemp.getMethods())); - } - } - } else { - methods.addAll(Arrays.asList(interfaceClass.getMethods())); - } - } - - if (methods.isEmpty()) { - methods.addAll(Arrays.asList(clazz.getDeclaredMethods())); - } - - return methods.toArray(new Method[methods.size()]); - } - - public static Object findEnumConstant(Class enumType, Object findConst) { - Object result = null; - Object[] enumConstants = enumType.getEnumConstants(); - for (Object enumConst : enumConstants) { - if (enumConst.toString().equals(findConst.toString())) { - result = enumConst; - break; - } - } - - if (result == null && findConst != null) { // last try for XmlEnum.. - result = getXmlEnumFromValue(enumType, findConst.toString()); - } - - return result; - } - - @SuppressWarnings("unchecked") - public static boolean isXmlEnum(Class class1) { - boolean result = false; - try { - Class xmlEnumClass = Class.forName("javax.xml.bind.annotation.XmlEnum"); - result = (xmlEnumClass != null) && (class1.getAnnotation(xmlEnumClass) != null); - } catch (ClassNotFoundException e) { - LOG.info("Class Not Found: javax.xml.bind.annotation.XmlEnum, this is ok if you aren't serializing JaxB Objects"); - } - - return result; - } - - - public static Object getXmlEnumFromValue(Class enumType, String findConst) { - Object result = null; - try { - if (isXmlEnum(enumType)) { - // XmlEnum will have a "fromValue" method to convert the const to the enum const - Method fromValue = enumType.getMethod("fromValue", String.class); - result = fromValue.invoke(enumType, findConst); - } - } catch (Exception e) { - // could happen..just give up and return null - } - return result; - } - - public static boolean isArrayType(Class type) { - return List.class.isAssignableFrom(type); - } - - public static boolean isMapType(Class type) { - return Map.class.isAssignableFrom(type); - } - - public static Class getArrayElementType(Method method, int paramIndex) { - Type[] types = method.getGenericParameterTypes(); - if (types.length > paramIndex) { - return getArrayElementType(types[paramIndex]); - } - return null; - } - - public static Class getArrayElementType(Type genericType) { - Class result = null; - - if (genericType instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType) genericType; - //Type raw = pt.getRawType(); - //Type owner = pt.getOwnerType(); - Type[] typeArgs = pt.getActualTypeArguments(); - if (typeArgs[0] instanceof GenericArrayType) { - Class arrayElementType = (Class) ((GenericArrayType) typeArgs[0]) - .getGenericComponentType(); - result = arrayElementType; - } else if (typeArgs[0] instanceof Class){ - result = (Class) typeArgs[0]; - } - } - - return result; - } - - @SuppressWarnings("unchecked") - public static boolean hasEmptyConstructor(Class type) { - boolean result = false; - Constructor[] constructors = type.getDeclaredConstructors(); - for (Constructor constructor : constructors) { - if (constructor.getParameterTypes().length == 0) { - result = true; - break; - } - } - - return result; - } -} diff --git a/src/edu/cornell/mannlib/semservices/util/DateConverter.java b/src/edu/cornell/mannlib/semservices/util/DateConverter.java deleted file mode 100644 index 02ddc491..00000000 --- a/src/edu/cornell/mannlib/semservices/util/DateConverter.java +++ /dev/null @@ -1,143 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -/* - * $Id: DateConverter.java 50408 2007-03-28 19:14:46Z jdamick $ - * - * Copyright 2006- Revolution Health Group. All rights reserved. - * - * This software is the confidential and proprietary information - * of Revolution Health Group. (Confidential Information). - * You shall not disclose such Confidential Information and shall - * use it only in accordance with the terms of the license - * agreement you entered into with Revolution Health Group. - * - */ - -package edu.cornell.mannlib.semservices.util; - - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.GregorianCalendar; - -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; -import javax.xml.datatype.XMLGregorianCalendar; - -import org.apache.commons.beanutils.ConversionException; -import org.apache.commons.beanutils.Converter; -import org.apache.log4j.Logger; -import net.sf.json.JSONException; -import net.sf.json.JSONObject; - -public final class DateConverter implements Converter { - private static final Logger LOG = Logger.getLogger(DateConverter.class); - - // Constructors - - /** - * Create a {@link Converter} that will throw a {@link ConversionException} - * if a conversion error occurs. - */ - public DateConverter() { - this.defaultValue = null; - converter = new XMLGregorianCalendarConverter(defaultValue); - } - - /** - * Create a {@link Converter} that will return the specified default value - * if a conversion error occurs. - * - * @param defaultValue - * The default value to be returned - */ - public DateConverter(Object defaultValue) { - this.defaultValue = defaultValue; - converter = new XMLGregorianCalendarConverter(defaultValue); - } - - // Instance Variables - - /** - * The default value specified to our Constructor, if any. - */ - private Object defaultValue = null; - private XMLGregorianCalendarConverter converter = null; - - // --------------------------------------------------------- Public Methods - - /** - * Convert the specified input object into an output object of the specified - * type. - * - * @param type - * XMLGregorianCalendar type to which this value should be - * converted - * @param value - * The input value to be converted - * - * @exception ConversionException - * if conversion cannot be performed successfully - */ - @SuppressWarnings({ "unchecked", "deprecation" }) - public Object convert(Class type, Object value) { - - String dateValue = value.toString(); - - if (value instanceof Date) { - return (value); - } else { - try { - JSONObject jsonObj = JSONObject.fromObject(value.toString()); - dateValue = jsonObj - .optString("Date" /* Date.class.toString() */); - } catch (JSONException e) { /* empty, could fail.. */ - LOG.debug("no date object found in the json"); - } - } - XMLGregorianCalendar calendar = (XMLGregorianCalendar) converter - .convert(type, dateValue); - - Object result = null; - try { - result = calendar.toGregorianCalendar().getTime(); - } catch (Exception exception) { /* - * empty, had some error parsing the - * time - */ - LOG.debug("Error converting the time"); - if (result == null) { - try { - result = new Date(Date.parse(dateValue)); - } catch (IllegalArgumentException argException) { - // last chance - result = java.sql.Date.valueOf(dateValue); - } - } - } - - if (result != null && (result instanceof Date) - && type.equals(java.sql.Date.class)) { - result = new java.sql.Date(((Date) result).getTime()); - } - - return result; - } - - public static XMLGregorianCalendar toXMLGregorianCalendar(Date date) { - try { - GregorianCalendar calendar = new GregorianCalendar(); - calendar.setTime(date); - return DatatypeFactory.newInstance().newXMLGregorianCalendar( - calendar); - } catch (DatatypeConfigurationException e) { - return null; - } - } - - public static String toFormattedString(Date date) { - String s = new String(); - s = new SimpleDateFormat("MMM d, h:mm a").format(date.getTime()); - return s; - } -} diff --git a/src/edu/cornell/mannlib/semservices/util/DateUtils.java b/src/edu/cornell/mannlib/semservices/util/DateUtils.java deleted file mode 100644 index 7e18b736..00000000 --- a/src/edu/cornell/mannlib/semservices/util/DateUtils.java +++ /dev/null @@ -1,197 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.semservices.util; - -import java.text.ParsePosition; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class DateUtils { - /** Logger for this class and subclasses */ - protected final Log logger = LogFactory.getLog(getClass()); - - public static final Long MILLISECONDSINDAY = 86400L; - public static final Long MILLISECONDSINYEAR = MILLISECONDSINDAY * 365; - - public static String getToday(String fmt) { - String today; - Calendar now = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-dd-MM"); - today = formatter.format(now.getTime()); - return today; - } - - public static String getCurrentYear() { - String y; - Calendar now = Calendar.getInstance(); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy"); - y = formatter.format(now.getTime()); - return y; - } - - - /** - * Get Current Jave Date - * - * returns a date in following format: Tue Apr 01 08:21:57 EST 2003 - */ - public static java.util.Date getCurrentJavaDate() { - java.util.Date currentDate = new java.util.Date(); - return currentDate; - } - - /** - * get Current SQL date - * - * returns a date in following format: 2003-04-01 - */ - public static java.sql.Date getCurrentSQLDate() { - java.util.Date currentDate = new java.util.Date(); - java.sql.Date sqlDate = new java.sql.Date(currentDate.getTime()); - return sqlDate; - } - - /** - * get current SQL Timestamp - * - * returns a date in following format: 2003-04-01 08:21:57.556 - */ - public static java.sql.Timestamp getCurrentSQLTimestamp() { - java.sql.Timestamp sqlTime = new java.sql.Timestamp(System.currentTimeMillis()); - return sqlTime; - } - - /** - * returns a formatted date/time as a string - * - * returns a date in the following format 01-04-03 08:21:57 - */ - public static String getFormattedDate() { - String s = null; - Calendar today = Calendar.getInstance(); - s = new SimpleDateFormat("dd-MM-yy hh:mm:ss").format(today.getTime()); - return s; - } - - /** - * returns a formatted date/time as a string - * @param a format string - * @return the current date in the specified format - */ - public static String getFormattedDate(String f) { - String s = null; - Calendar today = Calendar.getInstance(); - s = new SimpleDateFormat(f).format(today.getTime()); - return s; - } - - /** - * given a String date in a described format (i.e. YYYY-mm-dd) convert - * it to a String date in a new format (i.e. MM-dd-YYYY) - * - * @param s input date string - * @param formatin a format string - * @param formatout a format string - * @return formated date string - */ - public static String convertStringDate(String s, String formatIn, String formatOut) { - - try { - if (s.equals("now")) { - return (new SimpleDateFormat(formatOut).format(new java.util.Date())); - } else { - return (new SimpleDateFormat(formatOut)).format( - (new SimpleDateFormat(formatIn)).parse( - s, new ParsePosition(0))); - } - } catch( Exception e ) { - return ""; - } - - } - - /** - * returns a Date given a formatted string - */ - public static java.util.Date setDate(String s) { - SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy hh:mm:ss"); - ParsePosition pos = new ParsePosition(0); - java.util.Date newDate = formatter.parse(s, pos); - return newDate; - } - - /** - * returns a Date given a formatted string - */ - public static java.util.Date setDate(String s, String fmt) { - SimpleDateFormat formatter = new SimpleDateFormat(fmt); - ParsePosition pos = new ParsePosition(0); - java.util.Date newDate = formatter.parse(s, pos); - return newDate; - } - - /** - * returns a SQL Date given a formatted string - */ - public static java.sql.Date getSQLDateFromString(String s) { - return java.sql.Date.valueOf(s); - } - - /** - * returns a SQL Time given a formatted string - */ - public static java.sql.Time getSQLTimeFromString(String s) { - return java.sql.Time.valueOf(s); - } - - /* - * return a formatted version of a java.sqlDate - */ - public static String getFormattedDate(java.util.Date date, String fmt) { - String formattedDate = new String(); - formattedDate = new SimpleDateFormat(fmt).format(new java.util.Date(date.getTime())); - return formattedDate; - } - - /* - * return a formatted version of a java.sqlDate - */ - public static String getFormattedSQLDate(java.sql.Date sqldate, String fmt) { - String formattedDate = new String(); - formattedDate = new SimpleDateFormat(fmt).format(new java.util.Date(sqldate.getTime())); - return formattedDate; - } - - - public static java.sql.Date getNextSQLDate(java.sql.Date currentDate) { - Calendar cal = Calendar.getInstance(); - cal.setTime(currentDate); - cal.add(Calendar.DATE, 1); - java.util.Date tomorrow = cal.getTime(); - return new java.sql.Date(tomorrow.getTime()); - } - - /** - * @param start - * @param end - * @return elapsed time - */ - public static String getElapsedTime(String start, String end) { - long startlong = Long.parseLong(start, 10); - long endlong = Long.parseLong(end, 10); - long elapsed = endlong - startlong; - return Long.toString(elapsed, 10); - } - - /** - * returns a SQL Timestamp given a formatted string - */ - public static java.sql.Timestamp convertSQLTimestamp(String s, String formatIn, String formatOut) { - String s2 = convertStringDate(s, formatIn, formatOut); - //System.out.println("s2: "+s2); - return java.sql.Timestamp.valueOf(s2+".0"); - } - -} diff --git a/src/edu/cornell/mannlib/semservices/util/DayConverter.java b/src/edu/cornell/mannlib/semservices/util/DayConverter.java deleted file mode 100644 index f21edefa..00000000 --- a/src/edu/cornell/mannlib/semservices/util/DayConverter.java +++ /dev/null @@ -1,80 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.semservices.util; - - - -import java.util.Date; -import org.apache.commons.beanutils.Converter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import edu.cornell.mannlib.semservices.bo.Day; - -public class DayConverter implements Converter { - @SuppressWarnings("unused") - private static final Log logger = LogFactory.getLog(DayConverter.class); - /** - * The default value specified to our Constructor, if any. - */ - @SuppressWarnings("unused") - private Object defaultValue = null; - - /** - * Should we return the default value on conversion errors? - */ - @SuppressWarnings("unused") - private boolean useDefault = true; - - - /** - * Constructor - */ - public DayConverter() { - this.defaultValue = null; - this.useDefault = false; - } - - /** - * Constructor with object - * @param defaultValue - */ - public DayConverter(Object defaultValue) { - this.defaultValue = defaultValue; - this.useDefault = true; - } - - /* (non-Javadoc) - * @see org.apache.commons.beanutils.Converter#convert(java.lang.Class, java.lang.Object) - */ - @SuppressWarnings("unchecked") - public Object convert(Class type, Object value) { - String s = value.toString(); - return s; - } - - /** - * Format the output to something reasonable - * @param day - * @return - */ - public static String toFormattedString(Object day) { - Day dayObject = (Day) day; - String s = dayObject.getDayName()+ - ", "+dayObject.getMonthName()+ - " "+dayObject.getDayOfMonth()+ - ", "+dayObject.getYear(); - return s; - } - - public static String toUnixTime(Object day) { - // get date in milliseconds and divide by zero to return unixtime - Day dayObject = (Day) day; - Date date = dayObject.getDate(); - Long seconds = date.getTime() / 1000; - //logger.info("unixtime: " + seconds.toString()); - return seconds.toString(); - } - - -} diff --git a/src/edu/cornell/mannlib/semservices/util/ObjectUtils.java b/src/edu/cornell/mannlib/semservices/util/ObjectUtils.java deleted file mode 100644 index c146ede7..00000000 --- a/src/edu/cornell/mannlib/semservices/util/ObjectUtils.java +++ /dev/null @@ -1,276 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -/* - - * $Id$ - * CONFIDENTIAL AND PROPRIETARY. © 2007 Revolution Health Group LLC. All rights reserved. - * This source code may not be disclosed to others, used or reproduced without the written permission of Revolution Health Group. - * - */ -package edu.cornell.mannlib.semservices.util; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class ObjectUtils { - public static final String VERSION = "$Rev: 63219 $"; - private static final Log logger = LogFactory.getLog(ObjectUtils.class); - - @SuppressWarnings("unchecked") - private static final Set SIMPLE_TYPES = new HashSet() { - /** - * - */ - private static final long serialVersionUID = 1L; - - { - add(Boolean.class); - add(boolean.class); - add(Float.class); - add(float.class); - add(Double.class); - add(double.class); - add(Integer.class); - add(int.class); - add(Long.class); - add(long.class); - add(Short.class); - add(short.class); - add(Byte.class); - add(byte.class); - add(String.class); - add(BigDecimal.class); - add(BigInteger.class); - } - }; - - /** - * - */ - private ObjectUtils() { - } - - /** - * @param obj - * @return - */ - @SuppressWarnings("unchecked") - public static boolean isMap(Object obj) { - if (obj instanceof Map) { - return true; - } - return false; - } - - - /** - * @param obj - * @return - */ - public static boolean isBigDecimal(Object obj) { - if (obj instanceof BigDecimal) { - return true; - } - return false; - } - - /** - * @param obj - * @return - */ - public static boolean isArray(Object obj) { - if (obj != null) { - return isClassArray(obj.getClass()); - } - return false; - } - - /** - * @param clazz - * @return - */ - @SuppressWarnings("unchecked") - public static boolean isClassArray(Class clazz) { - if (clazz.isArray()) { - return true; - } - if (Collection.class.isAssignableFrom(clazz)) { - return true; - } - return false; - } - - /** - * @param obj - * @return - */ - public static boolean isSimpleType(Object obj) { - boolean result = false; - if (obj != null) { - result = isClassSimpleType(obj.getClass()); - } - - return result; - } - - /** - * @param clazz - * @return - */ - @SuppressWarnings("unchecked") - public static boolean isClassSimpleType(Class clazz) { - boolean result = false; - if (clazz != null && SIMPLE_TYPES.contains(clazz)) { - result = true; - } - return result; - } - - /** - * @param value - * @return - */ - @SuppressWarnings("unchecked") - public static boolean isComplex(Object value) { - Class type = value.getClass(); - return !(isSimpleType(value) || type.isEnum()); - } - - /** - * @param enumObj - * @return - */ - @SuppressWarnings("unchecked") - public static String getXmlEnumValue(Object enumObj) { - String result = null; - try { - if (ClassUtils.isXmlEnum((Class) enumObj.getClass())) { - // XmlEnum will have a "fromValue" method to convert the const - // to the enum const - Method value = enumObj.getClass().getMethod("value"); - result = value.invoke(enumObj).toString(); - } - } catch (Exception e) { - // could happen..just give up and return null - } - return result; - } - - /** - * @param o - */ - public static void printBusinessObject(Object o) { - Field[] fields = o.getClass().getDeclaredFields(); - - for (int i = 0; i < fields.length; i++) { - Field field = fields[i]; - try { - field.setAccessible(true); - System.out.println(field.getName()+": "+field.get(o)); - } - catch (IllegalAccessException e) { - System.err.println("Illegal access exception"); - } catch (NullPointerException e) { - System.err.println("Nullpointer Exception"); - } - } - System.out.println(); - } - - /** - * @param o - * @param fieldnames - */ - public static void printBusinessObject(Object o, List fieldnames) { - Field[] fields = new Field[fieldnames.size()]; - int f = 0; - for (String s: fieldnames) { - try { - fields[f++] = o.getClass().getDeclaredField(s); - } catch (SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (NoSuchFieldException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - for (int i = 0; i < fields.length; i++) { - Field field = fields[i]; - try { - field.setAccessible(true); - System.out.println(field.getName()+": "+field.get(o)); - } - catch (IllegalAccessException e) { - System.err.println("Illegal access exception"); - } catch (NullPointerException e) { - System.err.println("Nullpointer Exception"); - } - } - System.out.println(); - } - - /** - * @param o - */ - public static void logBusinessObject(Object o) { - Field[] fields = o.getClass().getDeclaredFields(); - - for (int i = 0; i < fields.length; i++) { - Field field = fields[i]; - try { - field.setAccessible(true); - logger.info(field.getName()+": "+field.get(o)); - } - catch (IllegalAccessException e) { - logger.error("Illegal access exception"); - } catch (NullPointerException e) { - logger.error("Nullpointer Exception"); - } - - } - } - - /** - * @param mapobject - */ - public static void printMapObject(Map mapobject) { - Iterator iter = mapobject.keySet().iterator(); - while (iter.hasNext()) { - Object keyobj = iter.next(); - Object valobj = mapobject.get(keyobj); - System.out.println(keyobj +": "+ valobj); - } - } - - /** - * @param mapobject - */ - public static void logMapObject(Map mapobject) { - Iterator iter = mapobject.keySet().iterator(); - while (iter.hasNext()) { - Object keyobj = iter.next(); - Object valobj = mapobject.get(keyobj); - logger.info(keyobj +": "+ valobj); - } - } - - public static String nl2br(String text) { - return text.replaceAll("\n\n", "

    ").replaceAll("\n", "
    "); - } - - - -} diff --git a/src/edu/cornell/mannlib/semservices/util/TimeConverter.java b/src/edu/cornell/mannlib/semservices/util/TimeConverter.java deleted file mode 100644 index ccd6147c..00000000 --- a/src/edu/cornell/mannlib/semservices/util/TimeConverter.java +++ /dev/null @@ -1,74 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.semservices.util; -import edu.cornell.mannlib.semservices.bo.Time; -import java.util.Date; - -import org.apache.commons.beanutils.Converter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - - - -public class TimeConverter implements Converter { - @SuppressWarnings("unused") - private static final Log logger = LogFactory.getLog(TimeConverter.class); - - /** - * The default value specified to our Constructor, if any. - */ - @SuppressWarnings("unused") - private Object defaultValue = null; - - /** - * Should we return the default value on conversion errors? - */ - @SuppressWarnings("unused") - private boolean useDefault = true; - - /** - * - */ - public TimeConverter() { - this.defaultValue = null; - this.useDefault = false; - } - - /** - * @param defaultValue - */ - public TimeConverter(Object defaultValue) { - this.defaultValue = defaultValue; - this.useDefault = true; - } - - /* (non-Javadoc) - * @see org.apache.commons.beanutils.Converter#convert(java.lang.Class, java.lang.Object) - */ - @SuppressWarnings("unchecked") - public Object convert(Class type, Object value) { - String s = value.toString(); - return s; - } - - /** - * @param time - * @return - */ - public static String toFormattedString(Object time) { - return time.toString(); - } - - /** - * @param time - * @return - */ - public static String toUnixTime(Object time) { - Time timeObject = (Time) time; - Date date = timeObject.getDate(); - Long seconds = date.getTime() / 1000; - //logger.info("unixtime: " + seconds.toString()); - return seconds.toString(); - } - -} diff --git a/src/edu/cornell/mannlib/semservices/util/TimestampConverter.java b/src/edu/cornell/mannlib/semservices/util/TimestampConverter.java deleted file mode 100644 index c4f3baa8..00000000 --- a/src/edu/cornell/mannlib/semservices/util/TimestampConverter.java +++ /dev/null @@ -1,65 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.semservices.util; -import java.sql.Timestamp; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.apache.commons.beanutils.Converter; - -public class TimestampConverter implements Converter { - /** - * The default value specified to our Constructor, if any. - */ - @SuppressWarnings("unused") - private Object defaultValue = null; - - /** - * Should we return the default value on conversion errors? - */ - @SuppressWarnings("unused") - private boolean useDefault = true; - - - /** - * - */ - public TimestampConverter() { - this.defaultValue = null; - this.useDefault = false; - } - - /** - * @param defaultValue - */ - public TimestampConverter(Object defaultValue) { - this.defaultValue = defaultValue; - this.useDefault = true; - } - - /* (non-Javadoc) - * @see org.apache.commons.beanutils.Converter#convert(java.lang.Class, java.lang.Object) - */ - - @SuppressWarnings("unchecked") - public Object convert(Class type, Object value) { - Timestamp ts = (Timestamp) value; - String s = new String(); - s = new SimpleDateFormat("MMM d, h:mm a").format(ts.getTime()); - return s; - } - - /** - * @param time - * @return - */ - public String toUnixTime(Object time) { - Timestamp ts = (Timestamp) time; - Date date = new Date(ts.getTime()); - Long seconds = date.getTime() / 1000; - //logger.info("unixtime: " + seconds.toString()); - return seconds.toString(); - } - - -} diff --git a/src/edu/cornell/mannlib/semservices/util/XMLGregorianCalendarConverter.java b/src/edu/cornell/mannlib/semservices/util/XMLGregorianCalendarConverter.java deleted file mode 100644 index 2caaf4ce..00000000 --- a/src/edu/cornell/mannlib/semservices/util/XMLGregorianCalendarConverter.java +++ /dev/null @@ -1,103 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -/* - - * $Id: XMLGregorianCalendarConverter.java 28642 2006-10-25 13:41:54Z jdamick $ - * - * Copyright 2006- Revolution Health Group. All rights reserved. - * - * This software is the confidential and proprietary information - * of Revolution Health Group. (Confidential Information). - * You shall not disclose such Confidential Information and shall - * use it only in accordance with the terms of the license - * agreement you entered into with Revolution Health Group. - * - */ - -package edu.cornell.mannlib.semservices.util; - -import javax.xml.datatype.DatatypeFactory; -import javax.xml.datatype.XMLGregorianCalendar; - -import org.apache.commons.beanutils.ConversionException; -import org.apache.commons.beanutils.Converter; - -public final class XMLGregorianCalendarConverter implements Converter { - - // Constructors - - /** - * Create a {@link Converter} that will throw a {@link ConversionException} - * if a conversion error occurs. - */ - public XMLGregorianCalendarConverter() { - this.defaultValue = null; - this.useDefault = false; - } - - /** - * Create a {@link Converter} that will return the specified default value if - * a conversion error occurs. - * - * @param defaultValue - * The default value to be returned - */ - public XMLGregorianCalendarConverter(Object defaultValue) { - this.defaultValue = defaultValue; - this.useDefault = true; - } - - // Instance Variables - - /** - * The default value specified to our Constructor, if any. - */ - private Object defaultValue = null; - - /** - * Should we return the default value on conversion errors? - */ - private boolean useDefault = true; - - // Public Methods - - /** - * Convert the specified input object into an output object of the specified - * type. - * - * @param type - * XMLGregorianCalendar type to which this value should be - * converted - * @param value - * The input value to be converted - * - * @exception ConversionException - * if conversion cannot be performed successfully - */ - @SuppressWarnings("unchecked") - public Object convert(Class type, Object value) { - - if (value == null) { - if (useDefault) { - return (defaultValue); - } else { - throw new ConversionException("No value specified"); - } - } - - if (value instanceof XMLGregorianCalendar) { - return (value); - } - - try { - return DatatypeFactory.newInstance().newXMLGregorianCalendar( - value.toString()); - } catch (Exception e) { - if (useDefault) { - return (defaultValue); - } else { - throw new ConversionException(e); - } - } - } -} diff --git a/src/edu/cornell/mannlib/semservices/view/BeanToJsonSerializer.java b/src/edu/cornell/mannlib/semservices/view/BeanToJsonSerializer.java deleted file mode 100644 index 13d4d859..00000000 --- a/src/edu/cornell/mannlib/semservices/view/BeanToJsonSerializer.java +++ /dev/null @@ -1,228 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -/* - * $Id: BeanToJsonSerializer.java 66350 2007-08-20 21:11:41Z xluan $ - * - * Copyright 2006- Revolution Health Group. All rights reserved. - * - * This software is the confidential and proprietary information - * of Revolution Health Group. (Confidential Information). - * You shall not disclose such Confidential Information and shall - * use it only in accordance with the terms of the license - * agreement you entered into with Revolution Health Group. - * - */ -package edu.cornell.mannlib.semservices.view; - -import java.beans.PropertyDescriptor; -import java.lang.reflect.InvocationTargetException; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import javax.xml.datatype.XMLGregorianCalendar; - -import org.apache.commons.beanutils.ConvertUtils; -import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import net.sf.json.JSONArray; -import net.sf.json.JSONException; -import net.sf.json.JSONNull; -import net.sf.json.JSONObject; - -import edu.cornell.mannlib.semservices.bo.Day; -import edu.cornell.mannlib.semservices.bo.Time; -import edu.cornell.mannlib.semservices.util.ClassUtils; -import edu.cornell.mannlib.semservices.util.DateConverter; -import edu.cornell.mannlib.semservices.util.DayConverter; -import edu.cornell.mannlib.semservices.util.ObjectUtils; -import edu.cornell.mannlib.semservices.util.TimeConverter; -import edu.cornell.mannlib.semservices.util.TimestampConverter; - -@SuppressWarnings("serial") -public class BeanToJsonSerializer { - private static final Log logger = LogFactory.getLog(BeanToJsonSerializer.class); - - /** - * - */ - private BeanToJsonSerializer() { - ConvertUtils.register(new DateConverter(), java.util.Date.class); - ConvertUtils.register(new TimestampConverter(), - String.class); - ConvertUtils.register(new TimeConverter(), String.class); - ConvertUtils.register(new DayConverter(), String.class); - } - - /** - * - */ - @SuppressWarnings("unchecked") - private static final Set CONVERTABLE_CLASSES = new HashSet() { - { - add(XMLGregorianCalendar.class); - } - }; - - /** - * @param bean - * @return - */ - public static JSONObject serializeToJsonObject(Object bean) { - Object result = serialize(bean); - JSONObject jsonObj = new JSONObject(); - try { - if (ObjectUtils.isArray(bean) || result instanceof JSONArray) { - jsonObj.put("array", result); - } else if (result instanceof JSONObject) { - jsonObj = (JSONObject) result; - } else { - jsonObj.put(bean.getClass().getSimpleName(), result); - } - } catch (JSONException e) { - logger.error("JSONException ",e); - } - return jsonObj; - } - - /** - * @param bean - * @return - */ - @SuppressWarnings("unchecked") - public static Object serialize(Object bean) { - //String simpleName = bean.getClass().getSimpleName(); - Object result = JSONNull.getInstance(); - - if (isObjectJson(bean)) { - result = bean; - } else if (bean != null && isConvertable(bean.getClass())) { - //logger.info("Converting convertable Class: "+simpleName); - result = ConvertUtils.convert(bean); - } else if (bean != null && Time.class.isAssignableFrom(bean.getClass())) { - //logger.info("Converting Time Class: "+simpleName); - result = TimeConverter.toUnixTime((Time) bean); - } else if (bean != null && Day.class.isAssignableFrom(bean.getClass())) { - //logger.info("Converting Day Class: "+simpleName); - result = DayConverter.toUnixTime((Day) bean); - } else if (bean != null - && java.util.Date.class.isAssignableFrom(bean.getClass())) { - // for date consistency, use the XMLGregorianCalendar - // result = - // DateConverter.toXMLGregorianCalendar((java.util.Date)bean - // ).toString(); - //logger.info("Converting Date Class: "+simpleName); - result = DateConverter.toFormattedString((java.util.Date) bean); - } else if (bean != null && ObjectUtils.isComplex(bean) - && !ObjectUtils.isArray(bean) && !ObjectUtils.isMap(bean)) { - //logger.info("Converting complex bean: "+simpleName); - JSONObject jsonObject = new JSONObject(); - try { - PropertyDescriptor[] pds = PropertyUtils - .getPropertyDescriptors(bean); - for (int i = 0; i < pds.length; i++) { - String key = pds[i].getName(); - if ("class".equals(key)) { - continue; - } - - Class type = pds[i].getPropertyType(); - Object value = PropertyUtils.getProperty(bean, key); - - if (String.class.isAssignableFrom(type)) { - jsonObject.put(key, (value == null) ? "" : value); - } else if (ObjectUtils.isArray(value)) { - jsonObject.put(key, serialize(value)); - } else if (value == null) { - jsonObject.put(key, JSONNull.getInstance()); - } else if (ObjectUtils.isSimpleType(value) || type.isEnum()) { - if (ClassUtils.isXmlEnum(type)) { - jsonObject.put(key, ObjectUtils.getXmlEnumValue(value)); - } else { - jsonObject.put(key, value); - } - } else { - jsonObject.put(key, serialize(value)); - } - } - - result = jsonObject; - } catch (IllegalAccessException e) { - logger.error("IllegalAccessException ", e); - } catch (InvocationTargetException e) { - logger.error("InvocationTargetException ", e); - } catch (NoSuchMethodException e) { - logger.error("NoSuchMethodException ", e); - } catch (JSONException e) { - logger.error("JSONException ", e); - } - } else if (ObjectUtils.isArray(bean)) { - //logger.info("Converting Array bean: "+simpleName); - Collection collection = null; - if (bean.getClass().isArray()) { - collection = Arrays.asList((Object[]) bean); - } else { - collection = (Collection) bean; - } - - result = new JSONArray(); - for (Object item : collection) { - ((JSONArray) result).add(serialize(item)); - } - } else if (ObjectUtils.isMap(bean)) { - //logger.info("Converting Map bean: "+simpleName); - Map map = (Map) bean; - result = new JSONObject(); - for (Object key : map.keySet()) { - try { - ((JSONObject) result).put(key.toString(), - serialize(map.get(key))); - } catch (JSONException e) { - logger.error("JSONException ",e); - } - } - } else if (bean != null && ClassUtils.isXmlEnum(bean.getClass())) { - //logger.info("converting xmlEnum bean: "+simpleName); - result = ObjectUtils.getXmlEnumValue(bean); - } else { - //logger.info("just returning the bean: "+simpleName); - result = bean; - } - return result; - } - - /** - * @param clazz - * @return - */ - @SuppressWarnings("unchecked") - private static boolean isConvertable(Class clazz) { - boolean found = false; - for (Class convertableClass : CONVERTABLE_CLASSES) { - if (convertableClass.isAssignableFrom(clazz)) { - found = true; - break; - } else { - //logger.warn("Class is not convertable"); - //logger.warn("Class: " + clazz.getSimpleName()); - } - } - return found; - } - - /** - * @param bean - * @return - */ - private static boolean isObjectJson(Object bean) { - if ((JSONNull.getInstance().equals(bean)) || (bean instanceof JSONObject) - || (bean instanceof JSONArray)) { - return true; - } - return false; - } -} diff --git a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/AddResearcherRoleToPersonGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/AddResearcherRoleToPersonGenerator.java index 79eb741f..8a70e00e 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/AddResearcherRoleToPersonGenerator.java +++ b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/AddResearcherRoleToPersonGenerator.java @@ -1,51 +1,53 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators; - -import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; -import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; - -public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { - - private static String template = "addResearcherRoleToPerson.ftl"; - - @Override - String getTemplate() { - return template; - } - - @Override - public String getRoleType() { - return "http://vivoweb.org/ontology/core#ResearcherRole"; - } - - /** Researcher role involves hard-coded options for the "right side" of the role or activity. */ - @Override - FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { - return new ConstantFieldOptions( - "", "Select one", - "http://vivoweb.org/ontology/core#Grant", "Grant", - "http://vivoweb.org/ontology/core#Project", "Project"); - } - - @Override - boolean isShowRoleLabelField() { return true; } - /* - * Use the methods below to change the date/time precision in the - * custom form associated with this generator. When not used, the - * precision will be YEAR. The other precisons are MONTH, DAY, HOUR, - * MINUTE, TIME and NONE. - */ -/* - public String getStartDatePrecision() { - String precision = VitroVocabulary.Precision.MONTH.uri(); - return precision; - } - - public String getEndDatePrecision() { - String precision = VitroVocabulary.Precision.DAY.uri(); - return precision; - } -*/ -} +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators; + +import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; + +public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { + + private static String template = "addResearcherRoleToPerson.ftl"; + + @Override + String getTemplate() { + return template; + } + + @Override + public String getRoleType() { + return "http://vivoweb.org/ontology/core#ResearcherRole"; + } + + /** Researcher role involves hard-coded options for the "right side" of the role or activity. */ + @Override + FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { + return new ConstantFieldOptions( + "", "Select one", + "http://vivoweb.org/ontology/core#Grant", "Grant", + "http://purl.obolibrary.org/obo/ERO_0000015", "Human Study", + "http://vivoweb.org/ontology/core#Project", "Project", + "http://purl.obolibrary.org/obo/ERO_0000014", "Research Project"); + } + + @Override + boolean isShowRoleLabelField() { return true; } + /* + * Use the methods below to change the date/time precision in the + * custom form associated with this generator. When not used, the + * precision will be YEAR. The other precisons are MONTH, DAY, HOUR, + * MINUTE, TIME and NONE. + */ +/* + public String getStartDatePrecision() { + String precision = VitroVocabulary.Precision.MONTH.uri(); + return precision; + } + + public String getEndDatePrecision() { + String precision = VitroVocabulary.Precision.DAY.uri(); + return precision; + } +*/ +} diff --git a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/NewIndividualFormGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/NewIndividualFormGenerator.java index bef4eeda..f736c26d 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/NewIndividualFormGenerator.java +++ b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/NewIndividualFormGenerator.java @@ -50,9 +50,14 @@ public class NewIndividualFormGenerator extends BaseEditConfigurationGenerator i + " ?newVcardInd vcard:hasName ?newVcardName . \n" + " ?newVcardName a vcard:Name . \n" + " ?newVcardName vcard:givenName ?firstName . \n" - + " ?newVcardName vcard:familyName ?lastName . \n" - + " ?newVcardName ?middleName .", - N3_PREFIX + " ?newInd <" + RDFS.label.getURI() + "> ?label ." + + " ?newVcardName vcard:familyName ?lastName . \n", + N3_PREFIX + " ?newInd <" + RDFS.label.getURI() + "> ?label .", + N3_PREFIX + "@prefix vcard: .\n" + + " ?newInd ?newVcardInd . \n" + + " ?newVcardInd a vcard:Individual . \n" + + " ?newVcardInd vcard:hasName ?newVcardName . \n" + + " ?newVcardName a vcard:Name . \n" + + " ?newVcardName ?middleName ." )); config.addNewResource("newInd", vreq.getWebappDaoFactory().getDefaultNamespace()); diff --git a/src/edu/cornell/mannlib/vitro/webapp/servlet/ConceptSearchServlet.java b/src/edu/cornell/mannlib/vitro/webapp/servlet/ConceptSearchServlet.java index 04a0aca0..38bdf751 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/servlet/ConceptSearchServlet.java +++ b/src/edu/cornell/mannlib/vitro/webapp/servlet/ConceptSearchServlet.java @@ -11,16 +11,16 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import net.sf.json.JSONObject; - import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + import edu.cornell.mannlib.semservices.bo.Concept; import edu.cornell.mannlib.semservices.bo.ConceptInfo; import edu.cornell.mannlib.semservices.bo.SemanticServicesError; -import edu.cornell.mannlib.semservices.view.BeanToJsonSerializer; import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.utils.ConceptSearchService.ConceptSearchServiceUtils; @@ -58,7 +58,9 @@ public class ConceptSearchServlet extends VitroHttpServlet { conceptInfo.setSemanticServicesError(semanticServicesError); } conceptInfo.setConceptList(results); + String json = renderJson(conceptInfo); + json = StringUtils.replaceChars(json, "\r\t\n", ""); PrintWriter writer = resp.getWriter(); resp.setContentType("application/json"); @@ -70,12 +72,18 @@ public class ConceptSearchServlet extends VitroHttpServlet { } } + protected String renderJson(ConceptInfo conceptInfo) { + + ObjectMapper mapper = new ObjectMapper(); + try { + return mapper.writeValueAsString(conceptInfo); + } catch (JsonProcessingException e) { + // TODO Auto-generated catch block + log.error("An error occurred in rendering conceptInfo as json ", e); + return null; + } + } - JSONObject jsonObject = null; - jsonObject = BeanToJsonSerializer.serializeToJsonObject(conceptInfo); - log.debug(jsonObject.toString()); - return jsonObject.toString(); - } } diff --git a/utilities/acceptance-tests/suites/LinkedOpenData/TestLinkedOpenData.html b/utilities/acceptance-tests/suites/LinkedOpenData/TestLinkedOpenData.html new file mode 100644 index 00000000..b48253e9 --- /dev/null +++ b/utilities/acceptance-tests/suites/LinkedOpenData/TestLinkedOpenData.html @@ -0,0 +1,115 @@ + + + + + + +

    Test the Linked Open Data requests

    + +

    Try various accept headers

    + + + + + +

    Try non-existent URI with RDFXML accept header

    + + + + + +

    Response data

    + +
    Response code is 000
    +
    MIME type is No type
    +
    Text is:
    +
    No text
    \ No newline at end of file diff --git a/utilities/acceptance-tests/suites/LinkedOpenData/TestLinkedOpenData.n3 b/utilities/acceptance-tests/suites/LinkedOpenData/TestLinkedOpenData.n3 new file mode 100644 index 00000000..8f45ec5c --- /dev/null +++ b/utilities/acceptance-tests/suites/LinkedOpenData/TestLinkedOpenData.n3 @@ -0,0 +1,56 @@ +@prefix rdfs: . +@prefix xmls: . +@prefix local: . +@prefix vivo: . +@prefix vcard: . +@prefix obo: . + + +local:lodFacultyMember + a vivo:FacultyMember ; + rdfs:label "Example, Bad "^^xmls:string ; + obo:ARG_2000028 local:lodVcard ; + obo:RO_0000053 local:lodMembership ; + vivo:overview "Not someone on whom you should base your actions." ; + vivo:scopusId "10982375409" ; + vivo:eRACommonsId "My_eRA_ID" . + +local:lodVcard + a vcard:Kind , vcard:Individual ; + obo:ARG_2000029 local:lodFacultyMember ; + vcard:hasName local:lodName ; + vcard:hasURL local:lodWebsite . + +local:lodName + a vcard:Name ; + vcard:familyName "Example"^^xmls:string ; + vcard:givenName "Bad"^^xmls:string ; + vcard:honorificPrefix "Mr."^^xmls:string . + +local:lodWebsite + a vcard:URL ; + rdfs:label "Slashdot" ; + vivo:rank "1"^^xmls:int ; + vcard:url "http://www.slashdot.org"^^xmls:anyURI . + +local:lodMembership + a vivo:MemberRole ; + rdfs:label "Bozo"^^xmls:string ; + obo:RO_0000052 local:lodFacultyMember ; + vivo:dateTimeInterval local:lodInterval ; + vivo:roleContributesTo local:lodDepartment . + +local:lodInterval + a vivo:DateTimeInterval ; + vivo:start local:lodStartDate . + +local:lodStartDate + a vivo:DateTimeValue ; + vivo:dateTime "1992-01-01T00:00:00"^^xmls:dateTime ; + vivo:dateTimePrecision vivo:yearPrecision . + +local:lodDepartment + a vivo:AcademicDepartment ; + rdfs:label "Department of Redundancy Department"^^xmls:string ; + vivo:contributingRole local:lodMembership . +