Java Doc for ComplexType.java in  » Web-Crawler » heritrix » org » archive » crawler » settings » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Web Crawler » heritrix » org.archive.crawler.settings 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   javax.management.Attribute
      org.archive.crawler.settings.Type
         org.archive.crawler.settings.ComplexType

All known Subclasses:   org.archive.crawler.settings.ModuleType,  org.archive.crawler.settings.MapType,
ComplexType
abstract public class ComplexType extends Type implements DynamicMBean(Code)
Superclass of all configurable modules. This class is in many ways the heart of the settings framework. All modules that should be configurable extends this class or one of its subclasses. All subclasses of this class will automatically conform to the JMX DynamicMBean. You could then use the ComplexType.getMBeanInfo() method to investigate which attributes this module supports and then use the ComplexType.getAttribute(String) and ComplexType.setAttribute(Attribute) methods to alter the attributes values. Because the settings framework supports per domain/host settings there is also available context sensitive versions of the DynamicMBean methods. If you use the non context sensitive methods, it is the global settings that will be altered.
author:
   John Erik Halse

Inner Class :class Context
Inner Class :public class MBeanAttributeInfoIterator implements Iterator

Field Summary
final protected  List<Type>definition
    
final protected  Map<String, Type>definitionMap
    

Constructor Summary
public  ComplexType(String name, String description)
     Creates a new instance of ComplexType.

Method Summary
public  TypeaddElement(CrawlerSettings settings, Type type)
    
public  TypeaddElementToDefinition(Type type)
     Add a new attribute to the definition of this ComplexType. This method can only be called before the ComplexType has been initialized.
public  FailedCheckcheckValue(CrawlerSettings settings, String attributeName, Object value)
     Check an attribute to see if it fulfills all the constraints set on the definition of this attribute.
Parameters:
  settings - the CrawlerSettings object for which this check wasexecuted.
Parameters:
  attributeName - the name of the attribute to check.
Parameters:
  value - the value to check.
 FailedCheckcheckValue(CrawlerSettings settings, String attributeName, Type definition, Object value)
    
public  voidearlyInitialize(CrawlerSettings settings)
     This method can be overridden in subclasses to do local initialisation. This method is run before the class has been updated with information from settings files.
public  StringgetAbsoluteName()
     Get the absolute name of this ComplexType.
public  ObjectgetAttribute(String name)
     Obtain the value of a specific attribute from the crawl order. If the attribute doesn't exist in the crawl order, the default value will be returned.
Parameters:
  name - the name of the attribute to be retrieved.
public  ObjectgetAttribute(String name, CrawlURI uri)
     Obtain the value of a specific attribute that is valid for a specific CrawlURI. This method will try to get the attribute from the host settings valid for the CrawlURI.
public  ObjectgetAttribute(Object context, String name)
     Obtain the value of a specific attribute that is valid for a specific CrawlerSettings object.

This method will first try to get a settings object from the supplied context, then try to look up the attribute from this settings object.

public  MBeanAttributeInfogetAttributeInfo(CrawlerSettings settings, String name)
     Get the effective Attribute info for an element of this type from a settings object.
Parameters:
  settings - the settings object for which the Attribute info iseffective.
Parameters:
  name - the name of the element to get the attribute for.
public  MBeanAttributeInfogetAttributeInfo(String name)
     Get the Attribute info for an element of this type from the global settings.
Parameters:
  name - the name of the element to get the attribute for.
public  MBeanAttributeInfoIteratorgetAttributeInfoIterator(Object context)
     Get an Iterator over all the MBeanAttributeInfo in this ComplexType.
Parameters:
  context - the context for which this set of MBeanAttributeInfo are valid.
public  AttributeListgetAttributes(String[] name)
    
protected  DataContainergetDataContainerRecursive(Context context)
     Get the active data container for this ComplexType for a specific settings object. If no value has been overridden on the settings object for this ComplexType, then it traverses up until it find a DataContainer with values for this ComplexType. This method should probably not be called from user code.
protected  DataContainergetDataContainerRecursive(Context context, String key)
     Get the active data container for this ComplexType for a specific settings object. If the key has not been overridden on the settings object for this ComplexType, then it traverses up until it find a DataContainer with the key for this ComplexType. This method should probably not be called from user code.
public  ObjectgetDefaultValue()
    
 TypegetDefinition(String attributeName)
     Get the content type definition for an attribute.
Parameters:
  attributeName - the name of the attribute to get definition for.
public  StringgetDescription()
     Get the description of this type The description should be suitable for showing in a user interface.
public  TypegetElementFromDefinition(String name)
     Get an element definition from this complex type. This method can only be called before the ComplexType has been initialized.
public  Object[]getLegalValues()
    
public  ObjectgetLocalAttribute(CrawlerSettings settings, String name)
     Obtain the value of a specific attribute that is valid for a specific CrawlerSettings object. This method will try to get the attribute from the supplied host settings object.
public  MBeanInfogetMBeanInfo()
    
public  MBeanInfogetMBeanInfo(Object context)
    
public  ComplexTypegetParent()
     Get the parent of this ComplexType.
protected  String[]getPreservedFields()
     Get a list of attribute names that the complex type should attempt to preserve if the module is exchanged with an other one.
 ContextgetSettingsFromObject(Object o, String attributeName)
     Get settings object valid for a URI.

This method takes an object, try to convert it into a CrawlURI and then tries to get the settings object from it.

 ContextgetSettingsFromObject(Object o)
     Get settings object valid for a URI. This method takes an object, try to convert it into a CrawlURI and then tries to get the settings object from it.
public  SettingsHandlergetSettingsHandler()
    
public  ObjectgetUncheckedAttribute(Object context, String name)
     Obtain the value of a specific attribute that is valid for a specific CrawlerSettings object.

This method will first try to get a settings object from the supplied context, then try to look up the attribute from this settings object.

public  ObjectgetValue()
     Returns this object.
public  CrawlerSettingsglobalSettings()
     Get the global settings object (aka order).
public  Objectinvoke(String arg0, Object[] arg1, String[] arg2)
    
public  booleanisInitialized()
     Returns true if this ComplexType is initialized.
public  booleanisOverridden(CrawlerSettings settings, String name)
     Returns true if an element is overridden for this settings object.
Parameters:
  settings - the settings object to investigate.
Parameters:
  name - the name of the element to check.
public  Iteratoriterator(Object context)
     Get an Iterator over all the attributes in this ComplexType.
Parameters:
  context - the context for which this set of attributes are valid.
protected  TyperemoveElementFromDefinition(String name)
     This method can only be called before the ComplexType has been initialized.
protected  voidsetAsOrder(SettingsHandler settingsHandler)
    
final public synchronized  voidsetAttribute(Attribute attribute)
     Set the value of a specific attribute of the ComplexType.
final public synchronized  voidsetAttribute(CrawlerSettings settings, Attribute attribute)
     Set the value of a specific attribute of the ComplexType.
public  AttributeListsetAttributes(AttributeList attributes)
    
public  voidsetDescription(String string)
     Set the description of this ComplexType The description should be suitable for showing in a user interface.
protected  voidsetPreservedFields(String[] preservedFields)
     Set a list of attribute names that the complex type should attempt to preserve if the module is exchanged with an other one.
public  StringtoString()
    
public  ObjectunsetAttribute(CrawlerSettings settings, String name)
     Unset an attribute on a per host level. This methods removes an override on a per host or per domain level.
Parameters:
  settings - the settings object for which the attribute should beunset.
Parameters:
  name - the name of the attribute.

Field Detail
definition
final protected List<Type> definition(Code)



definitionMap
final protected Map<String, Type> definitionMap(Code)




Constructor Detail
ComplexType
public ComplexType(String name, String description)(Code)
Creates a new instance of ComplexType.
Parameters:
  name - the name of the element.
Parameters:
  description - the description of the element.




Method Detail
addElement
public Type addElement(CrawlerSettings settings, Type type) throws InvalidAttributeValueException(Code)



addElementToDefinition
public Type addElementToDefinition(Type type)(Code)
Add a new attribute to the definition of this ComplexType. This method can only be called before the ComplexType has been initialized. This usally means that this method is available for constructors of subclasses of this class.
Parameters:
  type - the type to add. the newly added type.



checkValue
public FailedCheck checkValue(CrawlerSettings settings, String attributeName, Object value)(Code)
Check an attribute to see if it fulfills all the constraints set on the definition of this attribute.
Parameters:
  settings - the CrawlerSettings object for which this check wasexecuted.
Parameters:
  attributeName - the name of the attribute to check.
Parameters:
  value - the value to check. null if everything is ok, otherwise it returns a FailedCheckobject with detailed information of what went wrong.



checkValue
FailedCheck checkValue(CrawlerSettings settings, String attributeName, Type definition, Object value)(Code)



earlyInitialize
public void earlyInitialize(CrawlerSettings settings)(Code)
This method can be overridden in subclasses to do local initialisation. This method is run before the class has been updated with information from settings files. That implies that if you call getAttribute inside this method you will only get the default values.
Parameters:
  settings - the CrawlerSettings object for which thiscomplex type is defined.



getAbsoluteName
public String getAbsoluteName()(Code)
Get the absolute name of this ComplexType. The absolute name is like a file path with the name of the element prepended by all the parents names separated by slashes. Absolute name.



getAttribute
public Object getAttribute(String name) throws AttributeNotFoundException, MBeanException, ReflectionException(Code)
Obtain the value of a specific attribute from the crawl order. If the attribute doesn't exist in the crawl order, the default value will be returned.
Parameters:
  name - the name of the attribute to be retrieved. The value of the attribute retrieved.
throws:
  AttributeNotFoundException -
throws:
  MBeanException -
throws:
  ReflectionException -



getAttribute
public Object getAttribute(String name, CrawlURI uri) throws AttributeNotFoundException(Code)
Obtain the value of a specific attribute that is valid for a specific CrawlURI. This method will try to get the attribute from the host settings valid for the CrawlURI. If it is not found it will traverse the settings up to the order and as a last resort deliver the default value. This is also the case if the CrawlURI is null or if the CrawlURI hasn't been assigned a CrawlServer.
Parameters:
  name - the name of the attribute to be retrieved.
Parameters:
  uri - the CrawlURI that this attribute should be valid for. The value of the attribute retrieved.
See Also:   ComplexType.getAttribute(Object settings,String name)
throws:
  AttributeNotFoundException -



getAttribute
public Object getAttribute(Object context, String name) throws AttributeNotFoundException(Code)
Obtain the value of a specific attribute that is valid for a specific CrawlerSettings object.

This method will first try to get a settings object from the supplied context, then try to look up the attribute from this settings object. If it is not found it will traverse the settings up to the order and as a last resort deliver the default value.
Parameters:
  context - the object to get the settings from.
Parameters:
  name - the name of the attribute to be retrieved. The value of the attribute retrieved.
See Also:   CrawlerSettings
throws:
  AttributeNotFoundException -




getAttributeInfo
public MBeanAttributeInfo getAttributeInfo(CrawlerSettings settings, String name)(Code)
Get the effective Attribute info for an element of this type from a settings object.
Parameters:
  settings - the settings object for which the Attribute info iseffective.
Parameters:
  name - the name of the element to get the attribute for. the attribute info



getAttributeInfo
public MBeanAttributeInfo getAttributeInfo(String name)(Code)
Get the Attribute info for an element of this type from the global settings.
Parameters:
  name - the name of the element to get the attribute for. the attribute info



getAttributeInfoIterator
public MBeanAttributeInfoIterator getAttributeInfoIterator(Object context)(Code)
Get an Iterator over all the MBeanAttributeInfo in this ComplexType.
Parameters:
  context - the context for which this set of MBeanAttributeInfo are valid. an iterator over all the MBeanAttributeInfo in this map.



getAttributes
public AttributeList getAttributes(String[] name)(Code)



getDataContainerRecursive
protected DataContainer getDataContainerRecursive(Context context)(Code)
Get the active data container for this ComplexType for a specific settings object. If no value has been overridden on the settings object for this ComplexType, then it traverses up until it find a DataContainer with values for this ComplexType. This method should probably not be called from user code. It is a helper method for the settings framework.
Parameters:
  context - Context from which we get settings. the active DataContainer.



getDataContainerRecursive
protected DataContainer getDataContainerRecursive(Context context, String key) throws AttributeNotFoundException(Code)
Get the active data container for this ComplexType for a specific settings object. If the key has not been overridden on the settings object for this ComplexType, then it traverses up until it find a DataContainer with the key for this ComplexType. This method should probably not be called from user code. It is a helper method for the settings framework.
Parameters:
  context - the settings object for which the DataContaineris active.
Parameters:
  key - the key to look for. the active DataContainer.
throws:
  AttributeNotFoundException -



getDefaultValue
public Object getDefaultValue()(Code)



getDefinition
Type getDefinition(String attributeName)(Code)
Get the content type definition for an attribute.
Parameters:
  attributeName - the name of the attribute to get definition for. the content type definition for the attribute.



getDescription
public String getDescription()(Code)
Get the description of this type The description should be suitable for showing in a user interface. this type's description



getElementFromDefinition
public Type getElementFromDefinition(String name)(Code)
Get an element definition from this complex type. This method can only be called before the ComplexType has been initialized. This usally means that this method is available for constructors of subclasses of this class.
Parameters:
  name - name of element to get. the requested element or null if non existent.



getLegalValues
public Object[] getLegalValues()(Code)



getLocalAttribute
public Object getLocalAttribute(CrawlerSettings settings, String name) throws AttributeNotFoundException(Code)
Obtain the value of a specific attribute that is valid for a specific CrawlerSettings object. This method will try to get the attribute from the supplied host settings object. If it is not found it will return null and not try to investigate the hierarchy of settings.
Parameters:
  settings - the CrawlerSettings object to search for this attribute.
Parameters:
  name - the name of the attribute to be retrieved. The value of the attribute retrieved or null if its not set.
See Also:   CrawlerSettings
throws:
  AttributeNotFoundException - is thrown if the attribute doesn'texist.



getMBeanInfo
public MBeanInfo getMBeanInfo()(Code)



getMBeanInfo
public MBeanInfo getMBeanInfo(Object context)(Code)



getParent
public ComplexType getParent()(Code)
Get the parent of this ComplexType. the parent of this ComplexType.



getPreservedFields
protected String[] getPreservedFields()(Code)
Get a list of attribute names that the complex type should attempt to preserve if the module is exchanged with an other one. an array of attributenames to preserve.



getSettingsFromObject
Context getSettingsFromObject(Object o, String attributeName)(Code)
Get settings object valid for a URI.

This method takes an object, try to convert it into a CrawlURI and then tries to get the settings object from it. If this fails, then the global settings object is returned.

If the requested attribute is not set on this settings object it tries its parent until it gets a settings object where this attribute is set is found. If nothing is found, global settings is returned.
Parameters:
  o - possible CrawlURI.
Parameters:
  attributeName - the attribute that should have a value set on thereturned settings object. the settings object valid for the URI.




getSettingsFromObject
Context getSettingsFromObject(Object o)(Code)
Get settings object valid for a URI. This method takes an object, try to convert it into a CrawlURI and then tries to get the settings object from it. If this fails, then the global settings object is returned.
Parameters:
  o - possible CrawlURI. the settings object valid for the URI.



getSettingsHandler
public SettingsHandler getSettingsHandler()(Code)



getUncheckedAttribute
public Object getUncheckedAttribute(Object context, String name)(Code)
Obtain the value of a specific attribute that is valid for a specific CrawlerSettings object.

This method will first try to get a settings object from the supplied context, then try to look up the attribute from this settings object. If it is not found it will traverse the settings up to the order and as a last resort deliver the default value.

The only difference from the ComplexType.getAttribute(Object,String) is that this method doesn't throw any checked exceptions. If an undefined attribute is requested from a ComplexType, it is concidered a bug and a runtime exception is thrown instead.
Parameters:
  context - the object to get the settings from.
Parameters:
  name - the name of the attribute to be retrieved. The value of the attribute retrieved.
See Also:   ComplexType.getAttribute(Object,String)
See Also:   CrawlerSettings
throws:
  IllegalArgumentException -




getValue
public Object getValue()(Code)
Returns this object. This method is implemented to be able to treat the ComplexType as an subclass of javax.management.Attribute . this object.
See Also:   javax.management.Attribute.getValue



globalSettings
public CrawlerSettings globalSettings()(Code)
Get the global settings object (aka order). the global settings object.



invoke
public Object invoke(String arg0, Object[] arg1, String[] arg2) throws MBeanException, ReflectionException(Code)



isInitialized
public boolean isInitialized()(Code)
Returns true if this ComplexType is initialized. true if this ComplexType is initialized.



isOverridden
public boolean isOverridden(CrawlerSettings settings, String name) throws AttributeNotFoundException(Code)
Returns true if an element is overridden for this settings object.
Parameters:
  settings - the settings object to investigate.
Parameters:
  name - the name of the element to check. true if element is overridden for this settings object, falseif not set here or is first defined here.
throws:
  AttributeNotFoundException - if element doesn't exist.



iterator
public Iterator iterator(Object context)(Code)
Get an Iterator over all the attributes in this ComplexType.
Parameters:
  context - the context for which this set of attributes are valid. an iterator over all the attributes in this map.



removeElementFromDefinition
protected Type removeElementFromDefinition(String name)(Code)
This method can only be called before the ComplexType has been initialized. This usually means that this method is available for constructors of subclasses of this class.
Parameters:
  name - Name of element to remove. Element removed.



setAsOrder
protected void setAsOrder(SettingsHandler settingsHandler) throws InvalidAttributeValueException(Code)



setAttribute
final public synchronized void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException(Code)
Set the value of a specific attribute of the ComplexType. This method sets the specific attribute for the order file.
Parameters:
  attribute - The identification of the attribute to be set and thevalue it is to be set to.
throws:
  AttributeNotFoundException - is thrown if there is no attributewith this name.
throws:
  InvalidAttributeValueException - is thrown if the attribute is ofwrong type and cannot be converted to the right type.
throws:
  MBeanException - this is to conform to the MBean specification, butthis exception is never thrown, though this might change in thefuture.
throws:
  ReflectionException - this is to conform to the MBean specification, butthis exception is never thrown, though this might change in thefuture.
See Also:   javax.management.DynamicMBean.setAttribute(javax.management.Attribute)



setAttribute
final public synchronized void setAttribute(CrawlerSettings settings, Attribute attribute) throws InvalidAttributeValueException, AttributeNotFoundException(Code)
Set the value of a specific attribute of the ComplexType. This method is an extension to the Dynamic MBean specification so that it is possible to set the value for a CrawlerSettings object other than the settings object representing the order.
Parameters:
  settings - the settings object for which this attributes value is valid
Parameters:
  attribute - The identification of the attribute to be set and thevalue it is to be set to.
throws:
  AttributeNotFoundException - is thrown if there is no attributewith this name.
throws:
  InvalidAttributeValueException - is thrown if the attribute is ofwrong type and cannot be converted to the right type.
See Also:   javax.management.DynamicMBean.setAttribute(javax.management.Attribute)



setAttributes
public AttributeList setAttributes(AttributeList attributes)(Code)



setDescription
public void setDescription(String string)(Code)
Set the description of this ComplexType The description should be suitable for showing in a user interface.
Parameters:
  string - the description to set for this type.



setPreservedFields
protected void setPreservedFields(String[] preservedFields)(Code)
Set a list of attribute names that the complex type should attempt to preserve if the module is exchanged with an other one.
Parameters:
  preservedFields - array of attributenames to preserve.



toString
public String toString()(Code)



unsetAttribute
public Object unsetAttribute(CrawlerSettings settings, String name) throws AttributeNotFoundException(Code)
Unset an attribute on a per host level. This methods removes an override on a per host or per domain level.
Parameters:
  settings - the settings object for which the attribute should beunset.
Parameters:
  name - the name of the attribute. The removed attribute or null if nothing was removed.
throws:
  AttributeNotFoundException - is thrown if the attribute namedoesn't exist.



Methods inherited from org.archive.crawler.settings.Type
public void addConstraint(Constraint constraint)(Code)(Java Doc)
public boolean equals(Object o)(Code)(Java Doc)
public List getConstraints()(Code)(Java Doc)
abstract Object getDefaultValue()(Code)(Java Doc)
abstract String getDescription()(Code)(Java Doc)
public Class getLegalValueType()(Code)(Java Doc)
abstract Object[] getLegalValues()(Code)(Java Doc)
public boolean isExpertSetting()(Code)(Java Doc)
public boolean isOverrideable()(Code)(Java Doc)
public boolean isTransient()(Code)(Java Doc)
public void setExpertSetting(boolean isExpertSetting)(Code)(Java Doc)
public void setLegalValueType(Class legalValueType)(Code)(Java Doc)
public void setOverrideable(boolean b)(Code)(Java Doc)
public void setTransient(boolean b)(Code)(Java Doc)

Methods inherited from javax.management.Attribute
public boolean equals(Object object)(Code)(Java Doc)
public String getName()(Code)(Java Doc)
public Object getValue()(Code)(Java Doc)
public int hashCode()(Code)(Java Doc)
public String toString()(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.