/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/content/trunk/content-tool/tool/src/java/org/sakaiproject/content/tool/BasicRightsAssignment.java $
* $Id: BasicRightsAssignment.java 105079 2012-02-24 23:08:11Z ottenhoff@longsight.com $
***********************************************************************************
*
* Copyright (c) 2006, 2008 The Sakai Foundation
*
* Licensed under the Educational Community 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.opensource.org/licenses/ECL-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.sakaiproject.content.tool;
import java.util.Arrays;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Stack;
import java.util.Vector;
import org.sakaiproject.entity.api.ResourceProperties;
import org.sakaiproject.entity.api.ResourcePropertiesEdit;
import org.sakaiproject.time.cover.TimeService;
import org.sakaiproject.user.cover.UserDirectoryService;
import org.sakaiproject.util.ParameterParser;
import org.sakaiproject.util.ResourceLoader;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* BasicRightsAssignment can be used to represent a copyright or CreativeCommons designation for a resource.
* It can be serialized as XML and recreated. It can be rendered through a Velocity macro or a JSF widget.
*
* TAG
* KEY
* KEYLIST
* LABEL
*/
public class BasicRightsAssignment
{
/** Resource bundle using current language locale */
private static ResourceLoader rb = new ResourceLoader("right");
public class RightsChoice
{
protected String id;
protected String renderAs;
protected String label;
protected List options;
protected Map optionMapping;
protected String moreInfoUrl;
protected String moreInfoTitle;
protected String moreInfoText;
public RightsChoice(String id, String label, String renderAs, List options, Map optionsMapping)
{
this.id = id;
this.label = label;
this.renderAs = renderAs;
this.options = new Vector(options);
this.optionMapping = new Hashtable(optionsMapping);
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getLabel()
{
return label;
}
public void setLabel(String label)
{
this.label = label;
}
public String getMoreInfoTitle()
{
return moreInfoTitle;
}
public void setMoreInfoTitle(String moreInfoLabel)
{
this.moreInfoTitle = moreInfoLabel;
}
public String getMoreInfoText()
{
return moreInfoText;
}
public void setMoreInfoText(String moreInfoText)
{
this.moreInfoText = moreInfoText;
}
public String getMoreInfoUrl()
{
return moreInfoUrl;
}
public void setMoreInfoUrl(String moreInfoUrl)
{
this.moreInfoUrl = moreInfoUrl;
}
public Map getOptionMapping()
{
return optionMapping;
}
public void setOptionMapping(Map optionMapping)
{
this.optionMapping = optionMapping;
}
public List getOptions()
{
return options;
}
public void setOptions(List options)
{
this.options = options;
}
public String getRenderAs()
{
return renderAs;
}
public void setRenderAs(String renderAs)
{
this.renderAs = renderAs;
}
}
public static class RightsOption
{
protected String id;
protected String label;
protected String moreInfoUrl;
protected String moreInfoTitle;
protected String moreInfoText;
public RightsOption(String id, String label)
{
this.id = id;
this.label = label;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getLabel()
{
return label;
}
public void setLabel(String label)
{
this.label = label;
}
public String getMoreInfoTitle()
{
return moreInfoTitle;
}
public void setMoreInfoTitle(String moreInfoLabel)
{
this.moreInfoTitle = moreInfoLabel;
}
public String getMoreInfoText()
{
return moreInfoText;
}
public void setMoreInfoText(String moreInfoText)
{
this.moreInfoText = moreInfoText;
}
public String getMoreInfoUrl()
{
return moreInfoUrl;
}
public void setMoreInfoUrl(String moreInfoUrl)
{
this.moreInfoUrl = moreInfoUrl;
}
}
protected static final String RENDER_AS_TEXT_INPUT = "text";
protected static final String RENDER_AS_RADIO_BUTTONS = "radio";
protected static final String RENDER_AS_TEXTAREA = "textarea";
protected static final String RENDER_AS_SELECT = "select";
protected static final String RENDER_AS_DATE_INPUT = "date";
protected static final String RENDER_AS_CHECKBOX = "checkbox";
protected static final String RENDER_AS_CHECKBOXES = "checkboxes";
protected String[] user = { UserDirectoryService.getCurrentUser().getDisplayName() };
/*
status.label = Who owns the rights to this material?
status.unknown = Copyright status is not yet determined.
status.other = Someone else holds the copyright on this material.
status.mine = I hold the copyright on this material.
status.public_domain = This material is in the public domain.
*/
protected static final String USING_CREATIVE_COMMONS = "usingCreativeCommons";
protected static final String PD_URL = "http://creativecommons.org/license/publicdomain";
protected static final String DELIM = "_";
protected static final String FIELD_COMMERCIAL_USE = "myCommercialUse";
protected static final String FIELD_DONE = "done";
protected static final String FIELD_INFO = "jargon";
protected static final String FIELD_MODIFICATIONS = "myModifications";
protected static final String FIELD_MORE_INFO = "moreinfo";
protected static final String FIELD_MY_CR_OWNER = "myCopyrightOwner";
protected static final String FIELD_MY_CR_YEAR = "myCopyrightYear";
protected static final String FIELD_OFFER = "offer";
protected static final String FIELD_OTHER_OFFER = "otherOffer";
protected static final String FIELD_OTHER_COMMERCIAL_USE = "otherCommercialUse";
protected static final String FIELD_OTHER_CR_OWNER = "otherCopyrightOwner";
protected static final String FIELD_OTHER_CR_YEAR = "otherCopyrightYear";
protected static final String FIELD_OTHER_MODIFICATIONS = "otherModifications";
protected static final String FIELD_TERMS = "terms";
protected static final String FIELD_TITLE = "title";
protected static final String KEY_CREATE_CC = "new_creative_commons";
protected static final String KEY_CREATE_PD = "new_public_domain";
protected static final String KEY_CREATIVE_COMMONS = "creative_commons";
protected static final String KEY_FAIR_USE = "fair_use";
protected static final String KEY_LABEL = "label";
protected static final String KEY_MY_COPYRIGHT = "my_copyright";
protected static final String KEY_NO = "no";
protected static final String KEY_OTHER_COPYRIGHT = "other_copyright";
protected static final String KEY_PUBLIC_DOMAIN = "public_domain";
protected static final String KEY_SHARE_ALIKE = "share_alike";
protected static final String KEY_YES = "yes";
protected static final String[] KEYLIST_TERMS = { KEY_MY_COPYRIGHT, KEY_OTHER_COPYRIGHT, KEY_PUBLIC_DOMAIN };
protected String ccCommercialUse;
protected String ccModifications;
/** Member variable representing the name of the copyright holder (copyright holder is this user) */
protected String myCopyrightOwner;
/** Member variable representing the year of the copyright (copyright holder is this user) */
protected String myCopyrightYear;
/** A unique identifier that can be used in form fields to distinguish this rights obj from others in the same form */
protected String name;
/** Member variable representing user's secondary choice of how their work is offered to users (full copyright, new CC license, new PD dedication) */
protected String offer;
protected String otherCommercialUse;
/** Member variable representing the name of the copyright holder (copyright holder is NOT this user) */
protected String otherCopyrightOwner;
/** Member variable representing the year of the copyright (copyright holder is NOT this user) */
protected String otherCopyrightYear;
protected String otherModifications;
/** Member variable representing the status of IP rights for this work (user's copyright, someone else's copyright, existing CC license or existing PD status) */
protected String terms;
/** Member variable representing whether we using the new Creative Commons dialog or the old Sakai Copyright dialog */
protected boolean usingCreativeCommons;
/**
* Construct
* @param name A name for this instance that can be used as a unique identifier in rendering a set of form fields
* to input values for this object. Should not contain characters that are not valid in id's and names of html
* form-input elements.
* @param usingCreativeCommons true if the Creative Commons License should be shown as an option.
*/
public BasicRightsAssignment(String name, boolean usingCreativeCommons)
{
this.name = name;
this.usingCreativeCommons = usingCreativeCommons;
//terms = KEY_MY_COPYRIGHT;
//terms = KEY_OTHER_COPYRIGHT;
//offer = KEY_CREATE_CC;
}
/**
* Construct from info in XML in a DOM element.
*
* @param el
* The XML DOM element.
*/
public BasicRightsAssignment(Element el)
{
String usingCC = el.getAttribute(USING_CREATIVE_COMMONS);
this.usingCreativeCommons = Boolean.TRUE.toString().equals(usingCC);
this.terms = el.getAttribute(FIELD_TERMS);
if(this.terms == null)
{
}
else if(KEY_MY_COPYRIGHT.equals(terms))
{
this.myCopyrightYear = el.getAttribute(FIELD_MY_CR_YEAR);
this.myCopyrightOwner = el.getAttribute(FIELD_MY_CR_OWNER);
this.offer = el.getAttribute(FIELD_OFFER);
if(KEY_FAIR_USE.equals(offer))
{
}
else if(KEY_CREATE_CC.equals(offer))
{
ccModifications = el.getAttribute(FIELD_MODIFICATIONS);
ccCommercialUse = el.getAttribute(FIELD_COMMERCIAL_USE);
}
else if(KEY_CREATE_PD.equals(offer))
{
}
}
else if(KEY_OTHER_COPYRIGHT.equals(terms))
{
otherCopyrightYear = el.getAttribute(FIELD_OTHER_CR_YEAR);
otherCopyrightOwner = el.getAttribute(FIELD_OTHER_CR_OWNER);
}
else if(KEY_CREATIVE_COMMONS.equals(terms))
{
otherModifications = el.getAttribute(FIELD_OTHER_MODIFICATIONS);
otherCommercialUse = el.getAttribute(FIELD_OTHER_COMMERCIAL_USE);
}
} // BasicRightsAssignment
/**
* Construct from info in ResourceProperties.
*
* @param properties
*
*/
public BasicRightsAssignment(String name, ResourceProperties properties)
{
this.name = name;
try
{
this.usingCreativeCommons = properties.getBooleanProperty(USING_CREATIVE_COMMONS);
}
catch (Exception e)
{
this.usingCreativeCommons = false;
}
this.terms = properties.getProperty(FIELD_TERMS);
if(this.terms == null)
{
this.terms = KEY_OTHER_COPYRIGHT;
}
else if(KEY_MY_COPYRIGHT.equals(terms))
{
this.myCopyrightYear = properties.getProperty(FIELD_MY_CR_YEAR);
this.myCopyrightOwner = properties.getProperty(FIELD_MY_CR_OWNER);
this.offer = properties.getProperty(FIELD_OFFER);
if(KEY_FAIR_USE.equals(offer))
{
}
else if(KEY_CREATE_CC.equals(offer))
{
ccModifications = properties.getProperty(FIELD_MODIFICATIONS);
ccCommercialUse = properties.getProperty(FIELD_COMMERCIAL_USE);
}
else if(KEY_CREATE_PD.equals(offer))
{
}
}
else if(KEY_OTHER_COPYRIGHT.equals(terms))
{
otherCopyrightYear = properties.getProperty(FIELD_OTHER_CR_YEAR);
otherCopyrightOwner = properties.getProperty(FIELD_OTHER_CR_OWNER);
}
else if(KEY_CREATIVE_COMMONS.equals(terms))
{
otherModifications = properties.getProperty(FIELD_OTHER_MODIFICATIONS);
otherCommercialUse = properties.getProperty(FIELD_OTHER_COMMERCIAL_USE);
}
} // BasicRightsAssignment
/**
* Retrieve values for the rights assignment from a Velocity context.
* @param params
*/
public void captureValues(ParameterParser params)
{
if(usingCreativeCommons)
{
String terms = params.getString(getFieldNameTerms());
if(terms != null)
{
this.setTerms(terms);
}
String myCopyrightYear = params.getString(getFieldNameMyCopyrightYear());
if(myCopyrightYear != null)
{
this.setMyCopyrightYear(myCopyrightYear);
}
String myCopyrightOwner = params.getString(getFieldNameMyCopyrightOwner());
if(myCopyrightOwner != null)
{
this.setMyCopyrightOwner(myCopyrightOwner);
}
String otherCopyrightYear = params.getString(getFieldNameOtherCopyrightYear());
if(otherCopyrightYear != null)
{
this.setOtherCopyrightYear(otherCopyrightYear);
}
String otherCopyrightOwner = params.getString(getFieldNameOtherCopyrightOwner());
if(otherCopyrightOwner != null)
{
this.setOtherCopyrightOwner(otherCopyrightOwner);
}
String offer = params.getString(getFieldNameOffer());
if(offer != null)
{
this.setOffer(offer);
}
String ccModifications = params.getString(getFieldNameModifications());
if(ccModifications != null)
{
this.setCcModifications(ccModifications);
}
String otherModifications = params.getString(getFieldNameOtherModifications());
if(otherModifications != null)
{
this.setOtherModifications(otherModifications);
}
String ccCommercialUse = params.getString(getFieldNameCommercialUse());
if(ccCommercialUse != null)
{
this.setCcCommercialUse(ccCommercialUse);
}
String otherCommercialUse = params.getString(getFieldNameOtherCommercialUse());
if(otherCommercialUse != null)
{
this.setOtherCommercialUse(otherCommercialUse);
}
}
else
{
}
}
/**
* @return Returns the ccCommercialUse.
*/
public String getCcCommercialUse()
{
return ccCommercialUse;
}
/**
* @return Returns the ccModifications.
*/
public String getCcModifications()
{
return ccModifications;
}
/**
* Access the current user's display name.
* @return
*/
public String getDefaultCopyrightOwner()
{
String username = UserDirectoryService.getCurrentUser().getDisplayName();
return username;
}
/**
* Returns the current year.
* @return
*/
public String getDefaultCopyrightYear()
{
int year = TimeService.newTime().breakdownLocal().getYear();
return Integer.toString(year);
}
public String getFieldNameCommercialUse()
{
return name + DELIM + FIELD_COMMERCIAL_USE;
}
public String getFieldNameModifications()
{
return name + DELIM + FIELD_MODIFICATIONS;
}
/**
* Returns the field name for the copyright "owner" element.
*/
public String getFieldNameMyCopyrightOwner()
{
return name + DELIM + FIELD_MY_CR_OWNER;
}
/**
* Returns the field name for the copyright "year" element.
*/
public String getFieldNameMyCopyrightYear()
{
return name + DELIM + FIELD_MY_CR_YEAR;
}
/**
* Returns the field name for the copyright "year" element.
*/
public String getFieldNameOffer()
{
return name + DELIM + FIELD_OFFER;
}
public String getFieldNameOtherCommercialUse()
{
return name + DELIM + FIELD_OTHER_COMMERCIAL_USE;
}
/**
* Returns the field name for the copyright "owner" element.
*/
public String getFieldNameOtherCopyrightOwner()
{
return name + DELIM + FIELD_OTHER_CR_OWNER;
}
/**
* Returns the field name for the copyright "year" element.
*/
public String getFieldNameOtherCopyrightYear()
{
return name + DELIM + FIELD_OTHER_CR_YEAR;
}
public String getFieldNameOtherModifications()
{
return name + DELIM + FIELD_OTHER_MODIFICATIONS;
}
/**
* Returns the field name for the "terms" element.
*/
public String getFieldNameTerms()
{
return name + DELIM + FIELD_TERMS;
}
/**
*
* @return
*/
public String getInfoCreativeCommons()
{
return getString(FIELD_INFO, KEY_CREATIVE_COMMONS);
}
/**
*
* @return
*/
public String getInfoMyCopyright()
{
return getString(FIELD_INFO, KEY_MY_COPYRIGHT);
}
/**
*
* @return
*/
public String getInfoOtherCopyright()
{
return getString(FIELD_INFO, KEY_OTHER_COPYRIGHT);
}
/**
*
* @return
*/
public String getInfoPublicDomain()
{
return getString(FIELD_INFO, KEY_PUBLIC_DOMAIN);
}
/**
*
* @return
*/
public String getKeyCreativeCommons()
{
return KEY_CREATIVE_COMMONS;
}
/**
*
* @return
*/
public String getKeyFairUse()
{
return KEY_FAIR_USE;
}
public List getKeylistTerms()
{
return getKeys(KEYLIST_TERMS);
}
/**
*
* @return
*/
public String getKeyMyCopyright()
{
return KEY_MY_COPYRIGHT;
}
/**
*
* @return
*/
public String getKeyNewCreativeCommons()
{
return KEY_CREATE_CC;
}
/**
*
* @return
*/
public String getKeyNewPublicDomain()
{
return KEY_CREATE_PD;
}
/**
*
* @return
*/
public String getKeyNo()
{
return KEY_NO;
}
/**
*
* @return
*/
public String getKeyOtherCopyright()
{
return KEY_OTHER_COPYRIGHT;
}
/**
*
* @return
*/
public String getKeyPublicDomain()
{
return KEY_PUBLIC_DOMAIN;
}
/**
* Return a list of keys.
* @param array An array of strings containing the keys.
*/
protected List getKeys(String[] array)
{
return Arrays.asList(array);
}
/**
*
* @return
*/
public String getKeyShareAlike()
{
return KEY_SHARE_ALIKE;
}
/**
*
* @return
*/
public String getKeyYes()
{
return KEY_YES;
}
public String getLabelCommercialUse()
{
return getString(FIELD_COMMERCIAL_USE, KEY_LABEL);
}
public String getLabelCommercialUseNo()
{
return getString(FIELD_COMMERCIAL_USE, KEY_NO);
}
public String getLabelCommercialUseYes()
{
return getString(FIELD_COMMERCIAL_USE, KEY_YES);
}
public String getLabelDone()
{
return getString(FIELD_DONE, KEY_LABEL);
}
/**
*
* @return
*/
public String getLabelFairUse()
{
return getString(FIELD_OFFER, KEY_FAIR_USE);
}
public String getLabelModifications()
{
return getString(FIELD_MODIFICATIONS, KEY_LABEL);
}
public String getLabelModificationsNo()
{
return getString(FIELD_MODIFICATIONS, KEY_NO);
}
public String getLabelModificationsShareAlike()
{
return getString(FIELD_MODIFICATIONS, KEY_SHARE_ALIKE);
}
public String getLabelModificationsYes()
{
return getString(FIELD_MODIFICATIONS, KEY_YES);
}
public String getLabelMoreInfo()
{
return getString(FIELD_MORE_INFO, KEY_LABEL);
}
/**
*
* @return
*/
public String getLabelMyCopyrightOwner()
{
return getString(FIELD_MY_CR_OWNER, KEY_LABEL);
}
/**
*
* @return
*/
public String getLabelMyCopyrightYear()
{
return getString(FIELD_MY_CR_YEAR, KEY_LABEL);
}
/**
*
* @return
*/
public String getLabelNewCreativeCommons()
{
return getString(FIELD_OFFER, KEY_CREATE_CC);
}
/**
*
* @return
*/
public String getLabelNewPublicDomain()
{
return getString(FIELD_OFFER, KEY_CREATE_PD);
}
public String getLabelOtherCommercialUse()
{
return getString(FIELD_OTHER_COMMERCIAL_USE, KEY_LABEL);
}
public String getLabelOtherCommercialUseNo()
{
return getString(FIELD_OTHER_COMMERCIAL_USE, KEY_NO);
}
public String getLabelOtherCommercialUseYes()
{
return getString(FIELD_OTHER_COMMERCIAL_USE, KEY_YES);
}
/**
*
* @return
*/
public String getLabelOtherCopyrightOwner()
{
return getString(FIELD_OTHER_CR_OWNER, KEY_LABEL);
}
/**
*
* @return
*/
public String getLabelOtherCopyrightYear()
{
return getString(FIELD_OTHER_CR_YEAR, KEY_LABEL);
}
public String getLabelOtherModifications()
{
return getString(FIELD_OTHER_MODIFICATIONS, KEY_LABEL);
}
public String getLabelOtherModificationsNo()
{
return getString(FIELD_OTHER_MODIFICATIONS, KEY_NO);
}
public String getLabelOtherModificationsShareAlike()
{
return getString(FIELD_OTHER_MODIFICATIONS, KEY_SHARE_ALIKE);
}
public String getLabelOtherModificationsYes()
{
return getString(FIELD_OTHER_MODIFICATIONS, KEY_YES);
}
protected List getLabels(String[] array)
{
List list = new Vector();
for(int i = 0; i < array.length; i++ )
{
String label = rb.getString(array[i]);
list.add(label);
}
return list;
}
/**
*
* @return
*/
public String getLabelTerms()
{
return getString(FIELD_TERMS, KEY_LABEL);
}
/**
* @return Returns the copyrightOwner.
*/
public String getMyCopyrightOwner()
{
return myCopyrightOwner;
}
/**
* @return Returns the copyrightYear.
*/
public String getMyCopyrightYear()
{
return myCopyrightYear;
}
/**
* @return Returns the name.
*/
public String getName()
{
return name;
}
/**
* @return Returns the offer.
*/
public String getOffer()
{
return offer;
}
/**
* @return Returns the ccCommercialUse.
*/
public String getOtherCommercialUse()
{
return otherCommercialUse;
}
/**
* @return Returns the otherCopyrightOwner.
*/
public String getOtherCopyrightOwner()
{
return otherCopyrightOwner;
}
/**
* @return Returns the otherCopyrightYear.
*/
public String getOtherCopyrightYear()
{
return otherCopyrightYear;
}
/**
* @return Returns the ccModifications.
*/
public String getOtherModifications()
{
return otherModifications;
}
/**
* Access a string from the resource bundle identified by a key.
* @param key
* @return
*/
public String getString(String key)
{
return rb.getString(key);
}
/**
* Access a string from the resource bundle identified by a key.
* @param key
* @return
*/
public String getString(String category, String item)
{
return getString(category + "." + item);
}
/**
*
* @param key
* @return
*/
public String[] getStrings(String key)
{
return rb.getStrings(key);
}
/**
* @return Returns the terms.
*/
public String getTerms()
{
return terms;
}
/**
*
* @return
*/
public String getTitleCreativeCommons()
{
return getString(FIELD_TITLE, KEY_CREATIVE_COMMONS);
}
/**
*
* @return
*/
public String getTitleMyCopyright()
{
return getString(FIELD_TITLE, KEY_MY_COPYRIGHT);
}
/**
*
* @return
*/
public String getTitleOtherCopyright()
{
return getString(FIELD_TITLE, KEY_OTHER_COPYRIGHT);
}
/**
*
* @return
*/
public String getTitlePublicDomain()
{
return getString(FIELD_TITLE, KEY_PUBLIC_DOMAIN);
}
/**
* @return Returns the usingCreativeCommons.
*/
public boolean getUsingCreativeCommons()
{
return usingCreativeCommons;
}
/**
* @param ccCommercialUse The ccCommercialUse to set.
*/
public void setCcCommercialUse(String ccCommercialUse)
{
this.ccCommercialUse = ccCommercialUse;
}
/**
* @param ccModifications The ccModifications to set.
*/
public void setCcModifications(String ccModifications)
{
this.ccModifications = ccModifications;
}
/**
* @param copyrightOwner The copyrightOwner to set.
*/
public void setMyCopyrightOwner(String copyrightOwner)
{
this.myCopyrightOwner = copyrightOwner;
}
/**
* @param copyrightYear The copyrightYear to set.
*/
public void setMyCopyrightYear(String copyrightYear)
{
this.myCopyrightYear = copyrightYear;
}
/**
* @param name The name to set.
*/
public void setName(String name)
{
this.name = name;
}
/**
* @param offer The offer to set.
*/
public void setOffer(String offer)
{
this.offer = offer;
}
/**
* @param ccCommercialUse The ccCommercialUse to set.
*/
public void setOtherCommercialUse(String otherCommercialUse)
{
this.otherCommercialUse = otherCommercialUse;
}
/**
* @param otherCopyrightOwner The otherCopyrightOwner to set.
*/
public void setOtherCopyrightOwner(String otherCopyrightOwner)
{
this.otherCopyrightOwner = otherCopyrightOwner;
}
/**
* @param otherCopyrightYear The otherCopyrightYear to set.
*/
public void setOtherCopyrightYear(String otherCopyrightYear)
{
this.otherCopyrightYear = otherCopyrightYear;
}
/**
* @param otherModifications The otherModifications to set.
*/
public void setOtherModifications(String otherModifications)
{
this.otherModifications = otherModifications;
}
/**
* @param terms The terms to set.
*/
public void setTerms(String terms)
{
this.terms = terms;
}
/**
* @param usingCreativeCommons The usingCreativeCommons to set.
*/
public void setUsingCreativeCommons(boolean usingCreativeCommons)
{
this.usingCreativeCommons = usingCreativeCommons;
}
/**
* Serialize the rights-assignment into XML, adding an element to the doc under the top of the stack element.
*
* @param doc
* The DOM doc to contain the XML (or null for a string return).
* @param stack
* The DOM elements, the top of which is the containing element of the new "rightsAssignment" element.
* @return The newly added element.
*/
public Element toXml(Document doc, Stack stack)
{
Element rightsAssignment = doc.createElement("rightsAssignment");
if (stack.isEmpty())
{
doc.appendChild(rightsAssignment);
}
else
{
((Element) stack.peek()).appendChild(rightsAssignment);
}
stack.push(rightsAssignment);
if(usingCreativeCommons)
{
rightsAssignment.setAttribute(USING_CREATIVE_COMMONS, "true");
}
else
{
rightsAssignment.setAttribute(USING_CREATIVE_COMMONS, "false");
}
rightsAssignment.setAttribute(FIELD_TERMS, terms);
if(KEY_MY_COPYRIGHT.equals(terms))
{
rightsAssignment.setAttribute(FIELD_MY_CR_YEAR, myCopyrightYear);
rightsAssignment.setAttribute(FIELD_MY_CR_OWNER, myCopyrightOwner);
rightsAssignment.setAttribute(FIELD_OFFER, offer);
if(KEY_FAIR_USE.equals(offer))
{
}
else if(KEY_CREATE_CC.equals(offer))
{
rightsAssignment.setAttribute(FIELD_MODIFICATIONS, ccModifications);
rightsAssignment.setAttribute(FIELD_COMMERCIAL_USE, ccCommercialUse);
}
else if(KEY_CREATE_PD.equals(offer))
{
}
}
else if(KEY_OTHER_COPYRIGHT.equals(terms))
{
rightsAssignment.setAttribute(FIELD_OTHER_CR_YEAR, otherCopyrightYear);
rightsAssignment.setAttribute(FIELD_OTHER_CR_OWNER, otherCopyrightOwner);
}
else if(KEY_CREATIVE_COMMONS.equals(terms))
{
rightsAssignment.setAttribute(FIELD_OTHER_MODIFICATIONS, otherModifications);
rightsAssignment.setAttribute(FIELD_OTHER_COMMERCIAL_USE, otherCommercialUse);
}
stack.pop();
return rightsAssignment;
} // toXml
/**
* .
*
* @param properties
*
*/
public void addResourceProperties(ResourcePropertiesEdit properties)
{
properties.removeProperty(FIELD_TERMS);
properties.removeProperty(FIELD_MY_CR_YEAR);
properties.removeProperty(FIELD_MY_CR_OWNER);
properties.removeProperty(FIELD_OFFER);
properties.removeProperty(FIELD_MODIFICATIONS);
properties.removeProperty(FIELD_COMMERCIAL_USE);
properties.removeProperty(FIELD_OTHER_CR_YEAR);
properties.removeProperty(FIELD_OTHER_CR_OWNER);
properties.removeProperty(FIELD_OTHER_MODIFICATIONS);
properties.removeProperty(FIELD_OTHER_COMMERCIAL_USE);
properties.addProperty(FIELD_TERMS, terms);
properties.addProperty(USING_CREATIVE_COMMONS, Boolean.toString(usingCreativeCommons));
if(KEY_MY_COPYRIGHT.equals(terms))
{
properties.addProperty(FIELD_MY_CR_YEAR, myCopyrightYear);
properties.addProperty(FIELD_MY_CR_OWNER, myCopyrightOwner);
properties.addProperty(FIELD_OFFER, offer);
if(KEY_FAIR_USE.equals(offer))
{
}
else if(KEY_CREATE_CC.equals(offer))
{
properties.addProperty(FIELD_MODIFICATIONS, ccModifications);
properties.addProperty(FIELD_COMMERCIAL_USE, ccCommercialUse);
}
else if(KEY_CREATE_PD.equals(offer))
{
}
}
else if(KEY_OTHER_COPYRIGHT.equals(terms))
{
properties.addProperty(FIELD_OTHER_CR_YEAR, otherCopyrightYear);
properties.addProperty(FIELD_OTHER_CR_OWNER, otherCopyrightOwner);
}
else if(KEY_CREATIVE_COMMONS.equals(terms))
{
properties.addProperty(FIELD_OTHER_MODIFICATIONS, otherModifications);
properties.addProperty(FIELD_OTHER_COMMERCIAL_USE, otherCommercialUse);
}
} // addResourceProperties
}