/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.security.xml;
import static org.geoserver.security.xml.XMLConstants.*;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
/**
* This class provides precompiled XPath Expressions
*
*
* @author christian
*
*/
public class RoleXMLXpath_1_0 extends RoleXMLXpath {
/**
*
* Singleton, the implementation is stateless
*/
public final static RoleXMLXpath_1_0 Singleton = new RoleXMLXpath_1_0();
/**
* XML name space context for user/group store
*/
protected XPathExpression roleListExpression;
protected XPathExpression parentExpression;
protected XPathExpression roleNameExpression;
protected XPathExpression rolePropertiesExpression;
protected XPathExpression propertyNameExpression;
protected XPathExpression propertyValueExpression;
protected XPathExpression userRolesExpression;
protected XPathExpression userNameExpression;
protected XPathExpression userRolRefsExpression;
protected XPathExpression userRolRefNameExpression;
protected XPathExpression groupRolesExpression;
protected XPathExpression groupNameExpression;
protected XPathExpression groupRolRefsExpression;
protected XPathExpression groupRolRefNameExpression;
/**
* Constructor is protected, use the static Singleton instance
*/
protected RoleXMLXpath_1_0() {
XPathFactory factory = XPathFactory.newInstance();
XPath xpath= factory.newXPath();
xpath.setNamespaceContext(this.rrContext);
//versionExpression = compile(xpath,"/"+E_USERREGISTRY+"["+A_VERSION_UR + "]");
roleListExpression=compile(xpath,"/"+NSP_RR+":"+E_ROLEREGISTRY_RR+
"/"+NSP_RR+":"+E_ROLELIST_RR+
"/"+NSP_RR+":"+E_ROLE_RR);
parentExpression=compileRelativeAttribute(xpath, A_PARENTID_RR,NSP_RR);
roleNameExpression=compileRelativeAttribute(xpath, A_ROLEID_RR,NSP_RR);
rolePropertiesExpression=compile(xpath,NSP_RR+":"+E_PROPERTY_RR);
propertyNameExpression=compileRelativeAttribute(xpath, A_PROPERTY_NAME_RR,NSP_RR);
propertyValueExpression=compile(xpath,"text()");
userRolesExpression=compile(xpath,"/"+NSP_RR+":"+E_ROLEREGISTRY_RR+
"/"+NSP_RR+":"+E_USERLIST_RR+
"/"+NSP_RR+":"+E_USERROLES_RR);
userNameExpression=compileRelativeAttribute(xpath, A_USERNAME_RR,NSP_RR);
userRolRefsExpression=compile(xpath,NSP_RR+":"+E_ROLEREF_RR);
userRolRefNameExpression=compileRelativeAttribute(xpath, A_ROLEREFID_RR,NSP_RR);
groupRolesExpression=compile(xpath,"/"+NSP_RR+":"+E_ROLEREGISTRY_RR+
"/"+NSP_RR+":"+E_GROUPLIST_RR+
"/"+NSP_RR+":"+E_GROUPROLES_RR);
groupNameExpression=compileRelativeAttribute(xpath, A_GROUPNAME_RR,NSP_RR);
groupRolRefsExpression=compile(xpath,NSP_RR+":"+E_ROLEREF_RR);
groupRolRefNameExpression=compileRelativeAttribute(xpath, A_ROLEREFID_RR,NSP_RR);
}
public XPathExpression getRoleListExpression() {
return roleListExpression;
}
public XPathExpression getParentExpression() {
return parentExpression;
}
public XPathExpression getRoleNameExpression() {
return roleNameExpression;
}
public XPathExpression getRolePropertiesExpression() {
return rolePropertiesExpression;
}
public XPathExpression getPropertyNameExpression() {
return propertyNameExpression;
}
public XPathExpression getPropertyValueExpression() {
return propertyValueExpression;
}
public XPathExpression getUserRolesExpression() {
return userRolesExpression;
}
public XPathExpression getUserNameExpression() {
return userNameExpression;
}
public XPathExpression getUserRolRefsExpression() {
return userRolRefsExpression;
}
public XPathExpression getUserRolRefNameExpression() {
return userRolRefNameExpression;
}
public XPathExpression getGroupRolesExpression() {
return groupRolesExpression;
}
public XPathExpression getGroupNameExpression() {
return groupNameExpression;
}
public XPathExpression getGroupRolRefsExpression() {
return groupRolRefsExpression;
}
public XPathExpression getGroupRolRefNameExpression() {
return groupRolRefNameExpression;
}
}