| package org.eclipse.jst.jsf.designtime.internal.resources; |
| |
| import org.eclipse.core.runtime.IStatus; |
| |
| /** |
| * Represents a piece of a resource identifier. |
| * |
| * [localePrefix/][libraryName/][libraryVersion/][resourceName][/resourceVersion] |
| * |
| * @author cbateman |
| * |
| */ |
| public abstract class ResourceFragmentIdentifier |
| { |
| |
| /** |
| * @return true if validate().isOk |
| */ |
| public boolean isValid() |
| { |
| return validate().isOK(); |
| } |
| |
| /** |
| * @return a validation status for the current value of this identifier |
| */ |
| public abstract IStatus validate(); |
| |
| /** |
| * @return the resource name or null if none. |
| */ |
| public String getResourceName() |
| { |
| return null; |
| } |
| |
| /** |
| * @return the locale prefix or null if none. |
| */ |
| public String getLocalePrefix() |
| { |
| return null; |
| } |
| |
| /** |
| * @return the library name or null if none. |
| */ |
| public String getLibraryName() |
| { |
| return null; |
| } |
| |
| /** |
| * @return the library version or null if none. |
| */ |
| public String getLibraryVersion() |
| { |
| return null; |
| } |
| |
| /** |
| * @return the resource version or null if none. |
| */ |
| public String getResourceVersion() |
| { |
| return null; |
| } |
| |
| @Override |
| public boolean equals(Object obj) |
| { |
| if (super.equals(obj)) |
| { |
| return true; |
| } |
| |
| if (obj instanceof ResourceIdentifier) |
| { |
| String meToString = toString(); |
| String otherToString = obj.toString(); |
| return meToString != null && meToString.equals(otherToString); |
| } |
| return false; |
| } |
| |
| @Override |
| public int hashCode() |
| { |
| String toString = toString(); |
| return toString != null ? toString.hashCode() : 0; |
| } |
| |
| |
| @Override |
| public String toString() |
| { |
| String toString = ""; //$NON-NLS-1$ |
| |
| toString = append(toString, getLocalePrefix()); |
| toString = append(toString, getLibraryName()); |
| toString = append(toString, getLibraryVersion()); |
| toString = append(toString, getResourceName()); |
| toString = append(toString, getResourceVersion()); |
| return toString; |
| } |
| |
| /** |
| * @param appendStr |
| * @param toAppend |
| * @return a string with to toAppend appended to appendStr if it is not null. |
| * If appendStr is not append, a '/' is added between the two concatenated strings. |
| */ |
| protected String append(String appendStr, final String toAppend) |
| { |
| if (toAppend != null) |
| { |
| if (appendStr.length() > 0) |
| { |
| appendStr += "/"; //$NON-NLS-1$ |
| } |
| appendStr += toAppend; |
| } |
| return appendStr; |
| } |
| /** |
| * @return true if this identifier represents only a fragment of an identifier. |
| */ |
| public boolean isFragment() |
| { |
| return true; |
| } |
| } |