//============================================================================== // WritableProperty.java //============================================================================== package tribble.repository; import java.lang.Exception; import java.lang.Object; import java.lang.String; /******************************************************************************* * Generic modifiable document property. * *

* This class provides the fundamental attributes and methods for a * document property associated with a storable * repository document. * *

* A repository document is composed of content data (such as an image, * text, or other kind of user data) and zero or more properties. * Typically, the properties comprise the keys used to store the document in a * document storage system. All of the documents within a repository system * typically share the same set of document properties, although this is not * required of any implementation. * *

* Each document property has the following attributes: *

* *

* There may be other attributes of the properties, which are specific to the * particular subclass implementation of the repository system. * For documents being written to a repository by an {@link RepositoryWriter}, * a property can be associated with the document using the * {@link StorableDocument#addProperty StorableDocument.addProperty()} * method (or by some other means provided by the implementation). * *

* A given property that is associated with a particular repository document also * has a value, which is an object of some sort. Once a property is * associated with the document, its value can be set to some object using the * {@link StorableDocument#setProperty StorableDocument.setProperty()} method. * *

* The value of a property is the minimum amount of information that is * useful to an implementation. The other attributes may be used or ignored by * the implementation as it deems necessary. * *

* Note: This requires Java 1.5 or later. * * *

*
Source code:
*
* http://david.tribble.com/src/java/tribble/repository/WritableProperty.java *
*
Documentation:
*
* http://david.tribble.com/docs/tribble/repository/WritableProperty.html *
*
* * * @version API 3.0, $Revision: 1.2 $ $Date: 2012/03/17 23:02:13 $ * @since 2008-04-04 * @author David R. Tribble (david@tribble.com)
* Copyright ©2008-2012 by David R. Tribble, all rights reserved.
* Permission is granted to any person or entity except those designated * by the United States Department of State as a terrorist or terrorist * government or agency, to use and distribute this source code provided * that the original copyright notice remains present and unaltered. * * @see StorableDocument * @see RepositoryWriter */ public class WritableProperty extends DocumentProperty { static final String REV = "@(#)tribble/repository/WritableProperty.java $Revision: 1.2 $ $Date: 2012/03/17 23:02:13 $\n"; // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ // Constructors /************************************************************************** * Constructor. * * @param name * The name of this document property. * This cannot be null or empty. * * @throws NullPointerException (unchecked) * Thrown if name is null. * * @throws IllegalArgumentException (unchecked) * Thrown if name is an empty string (""). * * @since API 2.0, 2008-04-04 */ public WritableProperty(String name) { super(name); } // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ // Methods /*************************************************************************** * Establish the type of this document property. * * @param type * The type of this property, which is one of the * {@link #TYPE_TEXT TYPE_XXX} constants or some other * application-defined value (e.g., a MIME type name), * or null if it is not defined. * * @since API 2.0, 2008-04-04 */ public void setType(String type) { m_type = type; } /*************************************************************************** * Establish the length of this document property. * * @param len * The length of this document property, or zero if it is not defined. * * @since API 2.0, 2008-04-04 */ public void setLength(int len) { m_len = len; } /*************************************************************************** * Establish the output format specification for this document property. * * @param fmt * The formatting specification of this property, which specifies how the * property value should be formatted when it is stored in a repository * document; or null if it is not defined. * * @since API 2.0, 2008-04-04 */ public void setOutputFormat(String fmt) { m_outFmt = fmt; } /*************************************************************************** * Establish the input (source) format specification for this document * property. * * @param fmt * The source formatting specification of this property, which specifies the * format of the property value before it is stored in a repository document * (i.e., it specifies how the source value for this property should be * unformatted when its value is set, prior to being * reformatted when it is written to the repository); * or null if it is not defined. * * @since API 2.0, 2008-04-04 */ public void setInputFormat(String fmt) { m_inFmt = fmt; } /*************************************************************************** * Establish the default value for this document property. * If this method is not called, the default value is null. * * @param val * The default value to be used by this document property if it is not * explicitly set to another value. This can be null. * * @since API 2.0, 2008-04-04 */ public void setDefaultValue(Object val) { m_dflVal = val; } } // End WritableProperty.java