From b086f57f56bf0eb9dab9cf321a0f69aaaae84347 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 30 May 2012 08:37:45 +0200 Subject: Initial Maven Conversion --- src/main/java/com/c2kernel/lookup/DomainPath.java | 158 ++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 src/main/java/com/c2kernel/lookup/DomainPath.java (limited to 'src/main/java/com/c2kernel/lookup/DomainPath.java') diff --git a/src/main/java/com/c2kernel/lookup/DomainPath.java b/src/main/java/com/c2kernel/lookup/DomainPath.java new file mode 100644 index 0000000..ce849ce --- /dev/null +++ b/src/main/java/com/c2kernel/lookup/DomainPath.java @@ -0,0 +1,158 @@ +/************************************************************************** + * DomainPath.java + * + * $Revision: 1.22 $ + * $Date: 2005/10/13 08:15:00 $ + * + * Copyright (C) 2001 CERN - European Organization for Nuclear Research + * All rights reserved. + **************************************************************************/ + +package com.c2kernel.lookup; + +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.process.Gateway; +import com.c2kernel.utils.Logger; +import com.novell.ldap.LDAPAttribute; +import com.novell.ldap.LDAPAttributeSet; + + +/** +* @version $Revision: 1.22 $ $Date: 2005/10/13 08:15:00 $ +* @author $Author: abranson $ +**/ +public class DomainPath extends Path +{ + private EntityPath target = null; + protected static String mTypeRoot; + +/* Very simple extension to Path. Only copies constructors and defines root */ + + public DomainPath() + { + super(Path.UNKNOWN); + } + + public DomainPath(short type) + { + super(); + mType = type; + } + + public DomainPath(String[] path) + { + super(path, Path.UNKNOWN); + } + + public DomainPath(String path) + { + super(path, Path.UNKNOWN); + } + + public DomainPath(String path, EntityPath entity) throws InvalidEntityPathException + { + super(path, Path.UNKNOWN); + setEntity(entity); + } + + public DomainPath(DomainPath parent, String child) { + super(parent, child); + } + + /* the root of domain paths is /domain + * clearly + */ + @Override + public String getRoot() { + return "domain"; + } + + public DomainPath getParent() { + if (mPath.length == 0) + return null; + + String[] parentPath = new String[mPath.length-1]; + System.arraycopy(mPath, 0, parentPath, 0, parentPath.length); + return new DomainPath(parentPath); + } + + public void setEntity(EntityPath newTarget) { + if (newTarget == null) { // clear + target = null; + mType = Path.CONTEXT; + return; + } + + target = newTarget; + mType = Path.ENTITY; + } + + @Override + public EntityPath getEntity() throws ObjectNotFoundException { + if (mType == UNKNOWN) { // must decide + checkType(); + } + + if (target == null) + throw new ObjectNotFoundException("Path is a context", ""); + return target; + } + + @Override + public short getType() { + if (mType == UNKNOWN) { // must decide + checkType(); + } + return mType; + } + + public void checkType() { + try { + setEntity(Gateway.getLDAPLookup().resolvePath(this)); + } catch (InvalidEntityPathException ex) { + Logger.error(ex); + mType = CONTEXT; + } catch (ObjectNotFoundException ex) { + mType = CONTEXT; + } + + } + + /** + * Retrieves the domkey of the path + * @return the last path component; + */ + public String getName() { + return mPath[mPath.length-1]; + } + + @Override + public int getSysKey() { + if (mType == UNKNOWN) { // must decide + checkType(); + } + + if (mType == ENTITY) { + return target.getSysKey(); + } + else return INVALID; + } + + @Override + public LDAPAttributeSet createAttributeSet() { + LDAPAttributeSet attrs = new LDAPAttributeSet(); + attrs.add(new LDAPAttribute("cn",getName())); + if (getType() == ENTITY) { + String objectclass_values[] = { "alias", "aliasObject" }; + attrs.add(new LDAPAttribute("objectclass",objectclass_values)); + attrs.add(new LDAPAttribute("aliasedObjectName",target.getFullDN())); + } + + else + { + attrs.add(new LDAPAttribute("objectclass","cristalcontext")); + } + return attrs; + } +} + -- cgit v1.2.3