* 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.
actionChars = ACTION_CHARS;
instChars = INST_CHARS;
}
-
+
public final String errs() {
return msgs.toString();
}
}
protected final boolean noMatch(String str, Pattern p) {
- return !p.matcher(str).matches();
+ return str==null || !p.matcher(str).matches();
}
+
+ protected final void match(String text, String str, Pattern p) {
+ if(str==null || !p.matcher(str).matches()) {
+ msg(text);
+ }
+ }
+
protected final boolean nob(String str, Pattern p) {
- return str==null || !p.matcher(str).matches();
+ return str==null || !p.matcher(str).matches();
}
protected final void msg(String ... strs) {
} else if (user==null) {
msg("User is null");
} else {
- if(!(type.startsWith(user) && type.endsWith(":id"))) {
- if(nob(type,NAME_CHARS)) {
- msg("Perm Type [" + type + "] is invalid.");
- }
- }
+ if(!(type.startsWith(user) && type.endsWith(":id"))) {
+ if(nob(type,NAME_CHARS)) {
+ msg("Perm Type [" + type + "] is invalid.");
+ }
+ }
}
return this;
}
-
+
public final Validator permType(String type, String ns) {
if (type==null) {
msg("Perm Type is null");
}
public final Validator permInstance(String instance) {
- if(!"/".equals(instance) && nob(instance,instChars)) {
+ if(!"/".equals(instance) && nob(instance,instChars)) {
msg("Perm Instance [" + instance + "] is invalid.");
}
return this;
}
public final Validator role(String user, String role) {
- if(role==null) {
- msg("Role is null");
- }
- if(user==null) {
- msg("User is null");
- }
- if(!err()) {
- if(role.startsWith(user) && role.endsWith(":user")) {
- if(!(role.length() == user.length() + 5)) {
- msg("Role [" + role + "] is invalid.");
- }
- } else if (nob(role, NAME_CHARS)) {
- msg("Role [" + role + "] is invalid.");
- }
- }
+ boolean quit = false;
+ if(role==null) {
+ msg("Role is null");
+ quit = true;
+ }
+ if(user==null) {
+ msg("User is null");
+ quit = true;
+ }
+ if(!quit) {
+ if(role.startsWith(user) && role.endsWith(":user")) {
+ if(!(role.length() == user.length() + 5)) {
+ msg("Role [" + role + "] is invalid.");
+ }
+ } else if (nob(role, NAME_CHARS)) {
+ msg("Role [" + role + "] is invalid.");
+ }
+ }
return this;
}
return this;
} else if (nob(ns,NAME_CHARS)) {
msg("NS [" + ns + "] is invalid.");
- }
+ }
for (String s : nsKeywords) {
if (ns.endsWith(s)) {
msg("NS [" + ns + "] may not be named with NS keywords");