001: /*
002: * Enhydra Java Application Server Project
003: *
004: * The contents of this file are subject to the Enhydra Public License
005: * Version 1.1 (the "License"); you may not use this file except in
006: * compliance with the License. You may obtain a copy of the License on
007: * the Enhydra web site ( http://www.enhydra.org/ ).
008: *
009: * Software distributed under the License is distributed on an "AS IS"
010: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
011: * the License for the specific terms governing rights and limitations
012: * under the License.
013: *
014: * The Initial Developer of the Enhydra Application Server is Lutris
015: * Technologies, Inc. The Enhydra Application Server and portions created
016: * by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc.
017: * All Rights Reserved.
018: *
019: * Contributor(s):
020: *
021: */
022: package org.enhydra.kelp.common;
023:
024: import java.io.File;
025: import java.util.StringTokenizer;
026:
027: //
028: public class ValidationUtil {
029:
030: /**
031: * Hidden constructor
032: */
033: private ValidationUtil() {
034: }
035:
036: /**
037: * Test to see if the given package is a valid java package name.
038: *
039: * @param pack
040: * The package name to test
041: *
042: * @return
043: * True if the specified package name is valid.
044: */
045: public static boolean isJavaPackage(String pack) {
046: boolean valid = true;
047: StringTokenizer tokenizer = null;
048:
049: if (pack == null) {
050: pack = new String();
051: }
052: pack = pack.trim();
053: if (pack.length() == 0) {
054: valid = false;
055: } else if (pack.charAt(0) == '.') {
056: valid = false;
057: } else if (pack.charAt(pack.length() - 1) == '.') {
058: valid = false;
059: } else {
060: // string not to be resourced
061: final String DELIM = "."; // nores
062: tokenizer = new StringTokenizer(pack, DELIM);
063: while (tokenizer.hasMoreTokens()) {
064: if (!ValidationUtil.isJavaIdentifier(tokenizer
065: .nextToken())) {
066: valid = false;
067: break;
068: }
069: }
070: }
071: return valid;
072: }
073:
074: /**
075: * Test to see if the given indentifier is a valid java identifier.
076: *
077: * @param ident
078: * The identifier to test.
079: *
080: * @return
081: * True if the specified identifier is valid.
082: */
083: public static boolean isJavaIdentifier(String ident) {
084: boolean valid = true;
085:
086: for (int i = 0; i < ident.length(); i++) {
087: char ch = ident.charAt(i);
088:
089: if (i == 0) {
090: if (!Character.isJavaIdentifierStart(ch)) {
091: valid = false;
092: break;
093: }
094: } else if (!Character.isJavaIdentifierPart(ch)) {
095: valid = false;
096: break;
097: }
098: }
099: return valid;
100: }
101:
102: /**
103: * Test to see if a path is a directory.
104: *
105: * @param path
106: * The path to test.
107: *
108: * @return
109: * True if the specified path is a directory.
110: */
111: public static boolean isDirectory(String path) {
112: File file = new File(path);
113:
114: return ValidationUtil.isDirectory(file);
115: }
116:
117: public static boolean isDirectory(File file) {
118: boolean valid = false;
119:
120: if (file != null) {
121: valid = file.isDirectory();
122: }
123: return valid;
124: }
125:
126: /**
127: * Test to see if the parent of a given path is a valid directory.
128: *
129: * @param path
130: * The path to test.
131: *
132: * @return
133: * True if the parent of the specified path is a directory.
134: */
135: public static boolean isParentDirectory(String path) {
136: boolean valid = false;
137: File file = new File(path);
138:
139: if (file != null && file.getParentFile() != null) {
140: valid = file.getParentFile().isDirectory();
141: }
142: return valid;
143: }
144:
145: }
|