import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingEnumeration;
import javax.naming.directory.DirContext;
import com.novell.service.file.nw.NetwareFile;
import com.novell.service.file.nw.NetwareDirectory;
import com.novell.service.file.nw.DirectoryEntryInformation;
import com.novell.service.file.nw.TrusteeEnumerator;
import com.novell.service.file.nw.EAEnumerator;
import com.novell.service.file.nw.DirectorySpaceInformation;
import com.novell.utility.naming.Environment;
public class DirectoryAttrList
{
public static void main(String args[])
{
if (args.length < 1)
{
help();
}
String url = args[0];
StaticAttributeValueInterface sai = new TextualStatic(true);
DynamicAttributeValueInterface dai = new TextualDynamic(true);
Hashtable systemProps = new Hashtable();
systemProps.put(
Context.INITIAL_CONTEXT_FACTORY,
Environment.FS_INITIAL_CONTEXT_FACTORY);
systemProps.put(Context.PROVIDER_URL, url);
try
{
Object obj = new InitialContext(systemProps).lookup("");
sai.message("\nGetting attributes for directory: " + url + "\n");
sai.message(
"\nStatic method, using the NetwareFile and NetwareDirectory interface\n");
if (!(obj instanceof NetwareDirectory))
{
System.out.println(url + " does not specify a directory");
System.exit(-1);
}
sai.handleDirectoryEntryInformation((NetwareFile)obj);
sai.handleTrusteeEnumerator((NetwareFile)obj);
sai.handleEAEnumerator((NetwareFile)obj);
sai.handleDirectorySpaceInformation((NetwareDirectory)obj);
sai.message(
"\nDynamic method, using the JNDI Attributes interface\n");
dai.handleDirectoryEntryInformation(
(DirectoryEntryInformation)
dai.getAttribute(
DirectoryEntryInformation.ATTRIBUTE_ID,
(DirContext)obj),
(DirContext)obj);
dai.handleTrusteeEnumerator(
(NamingEnumeration)
dai.getAttribute(
TrusteeEnumerator.ATTRIBUTE_ID,
(DirContext)obj),
(DirContext)obj);
dai.handleEAEnumerator(
(NamingEnumeration)
dai.getAttribute(
EAEnumerator.ATTRIBUTE_ID,
(DirContext)obj),
(DirContext)obj);
dai.handleDirectorySpaceInformation(
(DirectorySpaceInformation)
dai.getAttribute(
DirectorySpaceInformation.ATTRIBUTE_ID,
(DirContext)obj),
(DirContext)obj);
}
catch (javax.naming.NamingException e)
{
System.out.println("Exception thrown: " + e);
e.printStackTrace();
System.exit(-1);
}
System.exit(0);
}
private static void help()
{
System.out.println(
"\nTo use this example program enter the following:\n");
System.out.println(
"\tjava DirectoryAttrList <url>\n");
System.out.println(
"\t\turl = name of the Directory to list attributes on");
System.out.println("\t\t my_server/my_volume/my_dir");
System.out.println("");
System.exit(-1);
}
}