| /* |
| * Copyright 2004, Ugo Cei. |
| * Licensed 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.butterfly.source; |
| |
| import java.io.Serializable; |
| |
| |
| /** |
| * A <code>SourceValidity</code> object contains all information to check if a Source |
| * object is still valid. |
| * <p> |
| * There are two possibilities: |
| * <ul> |
| * <li>The validity object has all information to check by itself if it is valid |
| * (e.g. given an expires date).</li> |
| * <li>The validity object possibility needs another (newer) validity object to compare |
| * against (e.g. to test a last modification date).</li> |
| * </ul> |
| * To avoid testing what the actual implementation of the validity object supports, |
| * the invocation order is to first call {@link #isValid()} and only if this result |
| * is <code>0</code> (i.e. "don't know"), then to call {@link #isValid(SourceValidity)}. |
| * <p> |
| * Remember to call {@link #isValid(SourceValidity)} when {@link #isValid()} returned |
| * <code>0</code> ! |
| * |
| * @version CVS $Id: SourceValidity.java,v 1.1 2004/07/23 08:47:20 ugo Exp $ |
| */ |
| public interface SourceValidity extends Serializable { |
| final int VALID = +1; |
| final int INVALID = -1; |
| final int UNKNOWN = 0; |
| |
| /** |
| * Check if the component is still valid. The possible results are : |
| * <ul> |
| * <li><code>-1</code>: invalid. The component isn't valid anymore.</li> |
| * <li><code>0</code>: don't know. This validity should be checked against a new |
| * validity object using {@link #isValid(SourceValidity)}.</li> |
| * <li><code>1</code>: valid. The component is still valid.</li> |
| * </ul> |
| */ |
| int isValid(); |
| |
| /** |
| * Check if the component is still valid. This is only true if the incoming Validity |
| * is of the same type and has the "same" values. |
| * <p> |
| * The invocation order is that the isValid |
| * method of the old Validity object is called with the new one as a |
| * parameter. |
| * @return -1 is returned, if the validity object is not valid anymore |
| * +1 is returned, if the validity object is still valid |
| * 0 is returned, if the validity check could not be performed. |
| * In this case, the new validity object is not usable. Examples |
| * for this are: when the validity objects have different types, |
| * or when one validity object for any reason is not able to |
| * get the required information. |
| */ |
| int isValid(SourceValidity newValidity); |
| |
| } |