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.NetwareVolume;
import com.novell.service.file.nw.NetwareDirectory;
import com.novell.service.file.nw.NetwareFile;
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.service.file.nw.VolumeInformation;
import com.novell.service.file.nw.VolumeRestrictionEnumerator;
import com.novell.service.file.nw.VolumeUtilization;
import com.novell.utility.naming.Environment;
public class VolumeAttrList
{
public static void main(String args[])
{
if (args.length < 2)
{
help();
}
String url = args[0];
String objectName = args[1];
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 Volume: " + url + "\n");
sai.message(
"\nStatic method, using the NetwareDirectory interface\n");
if (!(obj instanceof NetwareVolume))
{
System.out.println(url + " does not specify a Volume");
System.exit(-1);
}
sai.handleDirectoryEntryInformation((NetwareFile)obj);
sai.handleTrusteeEnumerator((NetwareFile)obj);
sai.handleEAEnumerator((NetwareFile)obj);
sai.handleDirectorySpaceInformation((NetwareDirectory)obj);
sai.handleVolumeInformation((NetwareVolume)obj);
sai.handleVolumeRestrictionEnumerator((NetwareVolume)obj);
sai.handleVolumeUtilization((NetwareVolume)obj, objectName);
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);
dai.handleVolumeInformation(
(VolumeInformation)
dai.getAttribute(
VolumeInformation.ATTRIBUTE_ID,
(DirContext)obj));
dai.handleVolumeRestrictionEnumerator(
(NamingEnumeration)
dai.getAttribute(
VolumeRestrictionEnumerator.ATTRIBUTE_ID,
(DirContext)obj),
(DirContext)obj);
dai.handleVolumeUtilization(
(VolumeUtilization)
dai.getAttribute(
VolumeUtilization.ATTRIBUTE_ID,
(DirContext)obj),
objectName);
}
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 VolumeAttrList <url> <objectName>\n");
System.out.println(
"\t\turl = name of the Volume to which to list attributes");
System.out.println("\t\t my_server/my_volume");
System.out.println(
"\t\tobjectName = name to which to obtain VolumeUtilization information");
System.out.println("\t\t admin+1");
System.out.println("");
System.exit(-1);
}
}