/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jempbox.xmp; import java.io.IOException; import java.util.Calendar; import org.apache.jempbox.impl.DateConverter; import org.apache.jempbox.impl.XMLUtil; import org.w3c.dom.Element; /** * This class represents a high level event that occured during the processing * of this resource. * * @author <a href="mailto:ben@benlitchfield.com">Ben Litchfield</a> * @version $Revision: 1.2 $ */ public class ResourceEvent implements Elementable { /** * Namespace for a resource event. */ public static final String NAMESPACE = "http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"; /** * A predefined action. */ public static final String ACTION_CONVERTED = "converted"; /** * A predefined action. */ public static final String ACTION_COPIED = "copied"; /** * A predefined action. */ public static final String ACTION_CREATED = "created"; /** * A predefined action. */ public static final String ACTION_CROPPED = "cropped"; /** * A predefined action. */ public static final String ACTION_EDITED = "edited"; /** * A predefined action. */ public static final String ACTION_FILTERED = "filtered"; /** * A predefined action. */ public static final String ACTION_FORMATTED = "formatted"; /** * A predefined action. */ public static final String ACTION_VERSION_UPDATED = "version_updated"; /** * A predefined action. */ public static final String ACTION_PRINTED = "printed"; /** * A predefined action. */ public static final String ACTION_PUBLISHED = "published"; /** * A predefined action. */ public static final String ACTION_MANAGED = "managed"; /** * A predefined action. */ public static final String ACTION_PRODUCED = "produced"; /** * A predefined action. */ public static final String ACTION_RESIZED = "resized"; /** * The DOM representation of this object. */ protected Element parent = null; /** * Create a resource reference based on a existing parent property set. * * @param parentElement The parent element that will store the resource properties. */ public ResourceEvent( Element parentElement ) { parent = parentElement; if( !parent.hasAttribute( "xmlns:stEvt" ) ) { parent.setAttributeNS( XMPSchema.NS_NAMESPACE, "xmlns:stEvt", NAMESPACE ); } } /** * Create resource event based on schema. * * @param schema The schema that this event will be part of. */ public ResourceEvent( XMPSchema schema ) { parent = schema.getElement().getOwnerDocument().createElement( "rdf:li" ); parent.setAttributeNS( XMPSchema.NS_NAMESPACE, "xmlns:stEvt", NAMESPACE ); } /** * Get the underlying XML element. * * @return The XML element that this object represents. */ public Element getElement() { return parent; } /** * Get the action that occured. See the ACTION_XXX constants. * * @return An action key, such as 'created' or 'printed'. */ public String getAction() { return XMLUtil.getStringValue( parent, "stEvt:action" ); } /** * Set the action that this event represents. See the ACTION_XXX constants. * * @param action The action that this event represents. */ public void setAction( String action ) { XMLUtil.setStringValue( parent, "stEvt:action", action ); } /** * Get the referenced resource's instance id. * * @return The id of the reference document instance. */ public String getInstanceID() { return XMLUtil.getStringValue( parent, "stEvt:instanceID" ); } /** * Set the referenced resource's document instance id. * * @param id The id of the reference document instance. */ public void setInstanceID( String id ) { XMLUtil.setStringValue( parent, "stEvt:instanceID", id ); } /** * Get an additional description of the event. * * @return Additional description of this event */ public String getParameters() { return XMLUtil.getStringValue( parent, "stEvt:parameters" ); } /** * Set some addition description to this event. * * @param param The additional action parameters. */ public void setParameters( String param ) { XMLUtil.setStringValue( parent, "stEvt:parameters", param ); } /** * Get the software that performed this action. * * @return The software that performed the action. */ public String getSoftwareAgent() { return XMLUtil.getStringValue( parent, "stEvt:softwareAgent" ); } /** * Set the software that performed this operation. * * @param software The name of the software that performed this action. */ public void setSoftwareAgent( String software ) { XMLUtil.setStringValue( parent, "stEvt:softwareAgent", software ); } /** * Get the date/time that this event occured. * * @return The date of the event. * * @throws IOException If there is an error creating the date. */ public Calendar getWhen() throws IOException { return DateConverter.toCalendar( XMLUtil.getStringValue( parent, "stEvt:when" ) ); } /** * Set when the event occured. * * @param when The date that the event occured. */ public void setWhen( Calendar when ) { XMLUtil.setStringValue( parent, "stEvt:when", DateConverter.toISO8601( when ) ); } /** * Get name of the asset management system that manages this resource. * * @return The name of a asset management system. */ public String getManager() { return XMLUtil.getStringValue( parent, "stRef:manager" ); } /** * Set the name of the system that manages this resource. * * @param manager The name of the management system. */ public void setMangager( String manager ) { XMLUtil.setStringValue( parent, "stRef:manager", manager ); } /** * Get name of the variant of asset management system that manages this resource. * * @return The name of a asset management system. */ public String getManagerVariant() { return XMLUtil.getStringValue( parent, "stRef:managerVariant" ); } /** * Set the name of the variant of the system that manages this resource. * * @param managerVariant The name of the management system. */ public void setMangagerVariant( String managerVariant ) { XMLUtil.setStringValue( parent, "stRef:managerVariant", managerVariant ); } /** * URI identifying the managed resource. * * @return The URI to resource. */ public String getManagerTo() { return XMLUtil.getStringValue( parent, "stRef:managerTo" ); } /** * Set the URI to the managed resource. * * @param managerTo The URI to the managed resource. */ public void setMangagerTo( String managerTo ) { XMLUtil.setStringValue( parent, "stRef:managerTo", managerTo ); } /** * URI to info about the managed resource. * * @return The URI to the resource info. */ public String getManagerUI() { return XMLUtil.getStringValue( parent, "stRef:managerUI" ); } /** * Set the URI to the info about the managed resource. * * @param managerUI The URI to the managed resource information. */ public void setMangagerUI( String managerUI ) { XMLUtil.setStringValue( parent, "stRef:managerUI", managerUI ); } }