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.cocoon.components.source.helpers;
018:
019: import java.util.Date;
020:
021: /**
022: * This interface for lock of a source
023: *
024: * @author <a href="mailto:stephan@vern.chem.tu-berlin.de">Stephan Michels</a>
025: * @version CVS $Id: SourceLock.java 433543 2006-08-22 06:22:54Z crossley $
026: */
027: public class SourceLock {
028:
029: private String subject;
030: private String type;
031: private Date expiration;
032: private boolean inheritable;
033: private boolean exclusive;
034:
035: /**
036: * Creates a new lock for a source
037: *
038: * @param subject Which user should be locked
039: * @param type Type of lock
040: * @param expiration When the lock expires
041: * @param inheritable If the lock is inheritable
042: * @param exclusive If the lock is exclusive
043: */
044: public SourceLock(String subject, String type, Date expiration,
045: boolean inheritable, boolean exclusive) {
046:
047: this .subject = subject;
048: this .type = type;
049: this .expiration = expiration;
050: this .inheritable = inheritable;
051: this .exclusive = exclusive;
052: }
053:
054: /**
055: * Sets the subject for this lock
056: *
057: * @param subject Which user should be locked
058: */
059: public void setSubject(String subject) {
060: this .subject = subject;
061: }
062:
063: /**
064: * return the subject of the lock
065: *
066: * @return Which user should be locked
067: */
068: public String getSubject() {
069: return this .subject;
070: }
071:
072: /**
073: * Sets the type of the lock
074: *
075: * @param type Type of lock
076: */
077: public void setType(String type) {
078: this .type = type;
079: }
080:
081: /**
082: * Return ths type of the lock
083: *
084: * @return Type of lock
085: */
086: public String getType() {
087: return this .type;
088: }
089:
090: /**
091: * Set the expiration date
092: *
093: * @param expiration Expiration date
094: */
095: public void setExpiration(Date expiration) {
096: this .expiration = expiration;
097: }
098:
099: /**
100: * Returns the expiration date
101: *
102: * @return Expiration date
103: */
104: public Date getExpiration() {
105: return this .expiration;
106: }
107:
108: /**
109: * Sets the inheritable flag
110: *
111: * @param inheritable If the lock is inheritable
112: */
113: public void setInheritable(boolean inheritable) {
114: this .inheritable = inheritable;
115: }
116:
117: /**
118: * Returns the inheritable flag
119: *
120: * @return If the lock is inheritable
121: */
122: public boolean isInheritable() {
123: return this .inheritable;
124: }
125:
126: /**
127: * Sets the exclusive flag
128: *
129: * @param exclusive If the lock is exclusive
130: */
131: public void setExclusive(boolean exclusive) {
132: this .exclusive = exclusive;
133: }
134:
135: /**
136: * Returns the exclusive flag
137: *
138: * @return If the lock is exclusive
139: */
140: public boolean isExclusive() {
141: return this.exclusive;
142: }
143: }
|