/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.cids.custom.switchon.wizards; import java.sql.Timestamp; import java.util.Date; import java.util.UUID; import java.util.concurrent.Future; import de.cismet.cids.custom.switchon.utils.CidsBeanUtils; import de.cismet.cids.custom.switchon.utils.TagUtils; import de.cismet.cids.custom.switchon.utils.Taggroups; import de.cismet.cids.dynamics.CidsBean; /** * Set the properties of the cidsbeans created by the wizard. * * @author Gilles Baatz * @version $Revision$, $Date$ */ public class DefaultPropertySetter { //~ Static fields/initializers --------------------------------------------- private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger( DefaultPropertySetter.class); // resource private static final Future<CidsBean> defaultTypeResource = TagUtils.fetchFutureTagByNameAndTaggroup( "external data", Taggroups.RESOURCE_TYPE.getValue()); private static final Future<CidsBean> defaultLanguage = TagUtils.fetchFutureTagByNameAndTaggroup( "eng", Taggroups.LANGUAGE.getValue()); private static final Future<CidsBean> defaultSrid = TagUtils.fetchFutureTagByNameAndTaggroup( "EPSG:4326", Taggroups.SRID.getValue()); // NOI18N private static final Future<CidsBean> defaultLocation = TagUtils.fetchFutureTagByNameAndTaggroup( "World", Taggroups.LOCATION.getValue()); // NOI18N private static final Future<CidsBean> defaultAccessConditions = TagUtils.fetchFutureTagByNameAndTaggroup( "other", Taggroups.ACCESS_CONDITIONS.getValue()); private static final Future<CidsBean> defaultAccessLimitations = TagUtils.fetchFutureTagByNameAndTaggroup( "limitation not listed", Taggroups.ACCESS_LIMITATIONS.getValue()); private static final Future<CidsBean> defaultConformity = TagUtils.fetchFutureTagByNameAndTaggroup( "Not evaluated", Taggroups.CONFORMITY.getValue()); private static final Future<CidsBean> defaultTopicCategory = TagUtils.fetchFutureTagByNameAndTaggroup( "inlandWaters", Taggroups.TOPIC_CATEGORY.getValue()); private static final Future<CidsBean> defaultCollection = TagUtils.fetchFutureTagByNameAndTaggroup( "UNCATEGORIZED", Taggroups.COLLECTION.getValue()); // Contact private static final Future<CidsBean> defaultRoleResource = TagUtils.fetchFutureTagByNameAndTaggroup( "resourceProvider", Taggroups.ROLE.getValue()); private static final Future<CidsBean> defaultRoleMetaData = TagUtils.fetchFutureTagByNameAndTaggroup( "pointOfContact", Taggroups.ROLE.getValue()); // Representation private static final Future<CidsBean> defaultTypeRepresentation = TagUtils.fetchFutureTagByNameAndTaggroup( "original data", Taggroups.REPRESENTATION_TYPE.getValue()); private static final Future<CidsBean> defaultContentType = TagUtils.fetchFutureTagByNameAndTaggroup( "application/octet-stream", Taggroups.CONTENT_TYPE.getValue()); private static final Future<CidsBean> defaultFunction = TagUtils.fetchFutureTagByNameAndTaggroup( "download", Taggroups.FUNCTION.getValue()); private static final Future<CidsBean> defaultProtocol = TagUtils.fetchFutureTagByNameAndTaggroup( "WWW:LINK-1.0-http--link", Taggroups.PROTOCOL.getValue()); private static final Future<CidsBean> defaultApplicationprofile = TagUtils.fetchFutureTagByNameAndTaggroup( "Web Browser", Taggroups.APPLICATION_PROFILE.getValue()); // meta-data private static final Future<CidsBean> defaultStandard = TagUtils.fetchFutureTagByNameAndTaggroup( "none", Taggroups.META_DATA_STANDARD.getValue()); private static final Future<CidsBean> defaultTypeMetaData = TagUtils.fetchFutureTagByNameAndTaggroup( "basic meta-data", Taggroups.META_DATA_TYPE.getValue()); private static final Future relationshipMetaDataType = TagUtils.fetchFutureTagByNameAndTaggroup( "relationship meta-data", Taggroups.META_DATA_TYPE.getValue()); private static final Future defaultMetaDataStandard = TagUtils.fetchFutureTagByNameAndTaggroup( "SWITCH-ON SIM", Taggroups.META_DATA_STANDARD.getValue()); public static final String defaultNameMetaData = "Autogenerated SWITCH-ON Basic Meta-Data"; private static final String defaultDescriptionMetaData = "Basic Meta-Data record created, derived or imported by the SWITCH-ON project according to the SWITCH-ON Standard Information Model (SIM) for Meta-Data for the SWITCH-ON Spatial Information Platform (SIP)."; // meta-data-contact private static final String defaultDescriptionMetaDataContact = "The SWITCH-ON (Sharing Water-related Information to Tackle Changes in the Hydrosphere – for Operational Needs) project prepared the Meta-Data Record of this dataset and made it available in the SWITCH-ON Spatial Information Platform Spatial Information Platform (SIP)."; public static final String defaultOrganisationMetaDataContact = "SWITCH-ON (Meta-Data Provider)"; public static final String defaultNameMetaDataContact = defaultOrganisationMetaDataContact; private static final Future<CidsBean> defaultRoleMetaDataContact = TagUtils.fetchFutureTagByName( "metadataProvider"); private static final String defaultURLMetaDataContact = "http://www.water-switch-on.eu/"; //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! * * @param resource DOCUMENT ME! */ public static void setDefaultsToResourceCidsBean(final CidsBean resource) { CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultLanguage, resource, "language"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultTypeResource, resource, "type"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultSrid, resource, "srid"); // NOI18N CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultLocation, resource, "location"); // NOI18N CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultAccessConditions, resource, "accessconditions"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultAccessLimitations, resource, "accesslimitations"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultConformity, resource, "conformity"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultTopicCategory, resource, "topiccategory"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultCollection, resource, "collection"); } /** * DOCUMENT ME! * * @param resource DOCUMENT ME! * * @throws Exception DOCUMENT ME! * * @deprecated DOCUMENT ME! */ public static void setDefaultDatesToResourceCidsBean(final CidsBean resource) throws Exception { resource.setProperty("fromdate", new Timestamp(new Date().getTime())); resource.setProperty("publicationdate", new Timestamp(new Date().getTime())); } /** * DOCUMENT ME! * * @param contact DOCUMENT ME! */ public static void setDefaultsToContactCidsBean(final CidsBean contact) { CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultRoleResource, contact, "role"); // NOI18N } /** * DOCUMENT ME! * * @param contact DOCUMENT ME! */ public static void setDefaultsToContactCidsBeanMetaData(final CidsBean contact) { CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultRoleMetaData, contact, "role"); // NOI18N } /** * DOCUMENT ME! * * @param contact DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public static void setDefaultsToMetaDataContactCidsBean(final CidsBean contact) throws Exception { CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultRoleMetaDataContact, contact, "role"); // NOI18N contact.setProperty("name", defaultNameMetaDataContact); contact.setProperty("description", defaultDescriptionMetaDataContact); contact.setProperty("organisation", defaultOrganisationMetaDataContact); contact.setProperty("url", defaultURLMetaDataContact); } /** * DOCUMENT ME! * * @param representation DOCUMENT ME! * @param resource DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public static void setDefaultsToRepresentationCidsBeanDerivedByResource(final CidsBean representation, final CidsBean resource) throws Exception { final String resourceName = (String)resource.getProperty("name"); representation.setProperty("name", resourceName + " Representation"); representation.setProperty("description", "Representation of the resource " + resourceName); representation.setProperty("uuid", UUID.randomUUID().toString()); } /** * DOCUMENT ME! * * @param representation DOCUMENT ME! */ public static void setDefaultsToRepresentationCidsBean(final CidsBean representation) { CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultTypeRepresentation, representation, "type"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultContentType, representation, "contenttype"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultFunction, representation, "function"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultProtocol, representation, "protocol"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty( defaultApplicationprofile, representation, "applicationprofile"); } /** * DOCUMENT ME! * * @param metadata DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public static void setDefaultsToMetaDataCidsBean(final CidsBean metadata) throws Exception { CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultLanguage, metadata, "language"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultStandard, metadata, "standard"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultContentType, metadata, "contenttype"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultTypeMetaData, metadata, "type"); metadata.setProperty("creationdate", new Timestamp(new Date().getTime())); } /** * DOCUMENT ME! * * @param metadata DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public static void setDefaultsToRelationshipMetaDataCidsBean(final CidsBean metadata) throws Exception { CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultLanguage, metadata, "language"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultStandard, metadata, "standard"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(relationshipMetaDataType, metadata, "type"); } /** * DOCUMENT ME! * * @param metadata DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public static void setDefaultsToMetaDataCidsBeanForBasicProfile(final CidsBean metadata) throws Exception { metadata.setProperty("name", defaultNameMetaData); metadata.setProperty("description", defaultDescriptionMetaData); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultLanguage, metadata, "language"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultMetaDataStandard, metadata, "standard"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultContentType, metadata, "contenttype"); CidsBeanUtils.setPropertyFromFutureIfStillEmpty(defaultTypeMetaData, metadata, "type"); } /** * DOCUMENT ME! * * @param relationship DOCUMENT ME! * * @return DOCUMENT ME! */ public static CidsBean createNewMetaDataForRelationshipCidsBean(final CidsBean relationship) { final CidsBean metaData; try { metaData = CidsBean.createNewCidsBeanFromTableName("SWITCHON", "metadata"); DefaultPropertySetter.setDefaultsToRelationshipMetaDataCidsBean(metaData); metaData.setProperty("name", relationship.toString() + " Meta-Data"); metaData.setProperty("description", "Meta-Data of the " + relationship.toString()); final CidsBean contact = CidsBean.createNewCidsBeanFromTableName("SWITCHON", "contact"); DefaultPropertySetter.setDefaultsToMetaDataContactCidsBean(contact); metaData.setProperty("contact", contact); return metaData; } catch (Exception ex) { DefaultPropertySetter.LOG.error(ex, ex); } return null; } /** * DOCUMENT ME! * * @param metadata DOCUMENT ME! * * @return DOCUMENT ME! */ public static boolean isStandardMetaData(final CidsBean metadata) { if (metadata != null) { final String name = (String)metadata.getProperty("name"); return defaultNameMetaData.equals(name); } else { return false; } } }