001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.jetspeed.prefs.om;
018:
019: import java.io.Serializable;
020: import java.sql.Timestamp;
021:
022: /**
023: * <p>
024: * Interface representing a property key/value pair.
025: * </p>
026: *
027: * @author <a href="mailto:dlestrat@apache.org">David Le Strat</a>
028: */
029: public interface Property extends Serializable, Cloneable {
030:
031: /**
032: * <p>
033: * Getter for the property value id.
034: * </p>
035: *
036: * @return The property value id.
037: */
038: long getPropertyValueId();
039:
040: /**
041: * <p>
042: * Setter for the property value id.
043: * </p>
044: *
045: * @param propertyValueId The property value id.
046: */
047: void setPropertyValueId(long propertyValueId);
048:
049: /**
050: * <p>
051: * Getter for the node id.
052: * </p>
053: *
054: * @return The node id.
055: */
056: long getNodeId();
057:
058: /**
059: * <p>
060: * Setter for the node id.
061: * </p>
062: *
063: * @param nodeId The node id.
064: */
065: void setNodeId(long nodeId);
066:
067: /**
068: * <p>
069: * Getter for the property name.
070: * </p>
071: *
072: * @return The property name.
073: */
074: String getPropertyName();
075:
076: /**
077: * <p>
078: * Setter for the property name.
079: * </p>
080: *
081: * @param propertyName The property name.
082: */
083: void setPropertyName(String propertyName);
084:
085: /**
086: * <p>
087: * Utility method used to return the property value as a String.
088: * </p>
089: *
090: * @return The property value as a String.
091: */
092: String getPropertyValue();
093:
094: /**
095: * <p>
096: * Utility method used to identify with property value to set based on the
097: * value object type.
098: * </p>
099: *
100: * @param valueObject The value object.
101: */
102: void setPropertyValue(String valueObject);
103:
104: /**
105: * <p>
106: * Getter for creation date.
107: * </p>
108: *
109: * @return The creation date.
110: */
111: Timestamp getCreationDate();
112:
113: /**
114: * <p>
115: * Setter for the creation date.
116: * </p>
117: *
118: * @param creationDate The creation date.
119: */
120: void setCreationDate(Timestamp creationDate);
121:
122: /**
123: * <p>
124: * Getter for the modified date.
125: * </p>
126: *
127: * @return The modified date.
128: */
129: Timestamp getModifiedDate();
130:
131: /**
132: * <p>
133: * Setter for the modified date.
134: * </p>
135: *
136: * @param modifiedDate The modified date.
137: */
138: void setModifiedDate(Timestamp modifiedDate);
139:
140: }
|