java uml diagram   The quickest way to understand how Java code is structured

 

Index

 

Full listing of the standard configuration XML for reference

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<AgileJConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="configuration.xsd"> 

    <!-- This file can be edited to change the Java element filters available to AgileJ StructureViews --> 
    <!-- Note that AgileJ StructureViews needs to be told to load its configuration from this file --> 
    <!-- Right click on this file in the package explorer and select AgileJ - Use as Configuration --> 

  <TypeSelector name="allTypes" trigger="all types"/> 

  <TypeSelector interfaces="false" name="allClasses" trigger="all classes"/> 

  <TypeSelector name="topLevelTypes" topLevel="true" trigger="top level types"/> 

  <TypeSelector interfaces="false" name="abstractClasses" stereotype="abstract" trigger="abstract classes"> 
    <Modifier value="abstract"/> 
  </TypeSelector> 

  <TypeSelector interfaces="false" name="concreteClasses" stereotype="concrete" trigger="concrete classes"> 
    <Exclude typeSelector="abstractClasses"/> 
  </TypeSelector> 

  <TypeSelector name="topLevelTypesExcludingObject" trigger="top level types excluding Object"> 
    <Exclude typeSelector="justObject" anded="true"/> 
    <Include typeSelector="topLevelTypes" anded="true"/> 
  </TypeSelector> 

  <TypeSelector name="bytecodeTypes" stereotype="bytecode" bytecode="true" trigger="bytecode types"/> 

  <TypeSelector name="subtypeOfTypesInPackage" trigger="subtype of type in package" requiredSwitches="packageName"> 
    <Supertype typeSelector="typesInPackage" forwardedSwitches="packageName"/> 
  </TypeSelector> 

  <TypeSelector name="typesDependingOnPackage" trigger="types depending on package" requiredSwitches="packageName"> 
    <DependsUpon typeSelector="typesInPackage" forwardedSwitches="packageName"/> 
  </TypeSelector> 

  <TypeSelector name="exceptions" stereotype="exception" trigger="exceptions"> 
    <Supertype typeSelector="justException"/> 
  </TypeSelector> 

  <TypeSelector name="innerTypes" trigger="inner types"> 
    <Exclude typeSelector="topLevelTypes"/> 
  </TypeSelector> 

  <TypeSelector name="innerTypesNamed" trigger="inner types named" namePatternSwitch="typeName" requiredSwitches="typeName"> 
    <Exclude typeSelector="topLevelTypes"/> 
  </TypeSelector> 

  <TypeSelector interfaces="true" name="allInterfaces" stereotype="interface" trigger="all interfaces"/> 

  <TypeSelector name="jreTypes" bytecode="true" stereotype="JRE" packagePattern="java*" trigger="jre types"/> 

  <TypeSelector qualifiedName="java.lang.Exception" name="justException"/> 

  <TypeSelector name="justObject" qualifiedName="java.lang.Object"/> 

  <TypeSelector name="justSerializable" qualifiedName="java.io.Serializable"/> 

  <TypeSelector name="typesNamed" trigger="types named" namePatternSwitch="typeName" requiredSwitches="typeName"/> 

  <TypeSelector name="typesAuthoredBy" trigger="types authored by" requiredSwitches="author"> 
    <Javadoc name="@author" valuePatternSwitch="author"/> 
    <DeclaredBy typeSelector="typesAuthoredBy" forwardedSwitches="author"/> 
  </TypeSelector> 

  <TypeSelector name="packageVisibleTypes" trigger="package visible types"> 
    <Exclude typeSelector="publicTypes" anded="true"/> 
    <Exclude typeSelector="protectedTypes" anded="true"/> 
    <Exclude typeSelector="privateTypes" anded="true"/> 
  </TypeSelector> 

  <TypeSelector name="privateTypes" trigger="private types"> 
    <Modifier value="private"/> 
  </TypeSelector> 

  <TypeSelector name="publicTypes" trigger="public types"> 
    <Modifier value="public"/> 
  </TypeSelector> 

  <TypeSelector name="protectedTypes" trigger="protected types"> 
    <Modifier value="protected"/> 
  </TypeSelector> 

  <TypeSelector name="selfReferencingTypes" trigger="self referencing types">
    <Declares fieldSelector="fieldsWhichReferenceTheirDeclarer"/> 
  </TypeSelector> 

  <TypeSelector name="serializableTypes" stereotype="serializable" trigger="serializable types"> 
    <Supertype typeSelector="justSerializable"/> 
  </TypeSelector> 

  <TypeSelector name="sourceCodeTypes" bytecode="false" trigger="source code types"/> 

  <TypeSelector name="topLevelSourceTypes" bytecode="false" topLevel="true" trigger="top level source types"/> 

  <TypeSelector name="typesInPackage" trigger="types in package" packagePatternSwitch="packageName" requiredSwitches="packageName"/> 

  <TypeSelector name="deprecatedTypes" trigger="deprecated types"> 
    <Javadoc name="deprecated"/> 
    <Annotation name="Deprecated"/> 
  </TypeSelector> 

  <TypeSelector packagePattern="java*" name="javaStarPackageTypes"/> 

  <TypeSelector bytecode="false" name="nonJavaStarPackageTypes" trigger="non java star package types"> 
    <Exclude typeSelector="javaStarPackageTypes"/> 
  </TypeSelector> 

  <TypeSelector name="typesDeclaringMethodsNamed" trigger="types declaring methods named" requiredSwitches="methodName"> 
    <Declares methodSelector="methodsNamed" forwardedSwitches="methodName"/> 
  </TypeSelector> 

  <TypeSelector name="typesDeclaringOrInheritingMethodsNamed" trigger="types declaring or inheriting methods named" requiredSwitches="methodName"> 
    <Declares methodSelector="methodsNamed" forwardedSwitches="methodName"/> 
    <Supertype typeSelector="typesDeclaringOrInheritingMethodsNamed" forwardedSwitches="methodName"/> 
  </TypeSelector> 

  <TypeSelector name="springTypes" stereotype="spring" trigger="spring types"> 
    <Annotation name="Autowired"/> 
    <Annotation name="Configurable"/> 
    <Annotation name="Order"/> 
    <Annotation name="Qualifier"/> 
    <Annotation name="Scope"/> 
    <Annotation name="Component"/> 
    <Annotation name="Controller"/> 
    <Annotation name="Repository"/> 
    <Annotation name="Service"/> 
  </TypeSelector> 

  <TypeSelector name="jmxTypes" stereotype="JMX" trigger="jmx types"> 
    <Annotation name="ManagedNotification"/> 
    <Annotation name="ManagedNotifications"/> 
    <Annotation name="ManagedResource"/> 
  </TypeSelector> 

  <TypeSelector name="aspectJTypes" stereotype="AspectJ" trigger="aspectj types"> 
    <Annotation name="Aspect"/> 
  </TypeSelector> 

  <TypeSelector name="justTestCase" namePattern="TestCase" packagePattern="junit.framework"/> 

  <TypeSelector name="junit3types" stereotype="JUnit Test" namePattern="Test*" trigger="junit3 types"> 
    <Modifier value="public" anded="true"/> 
    <Supertype typeSelector="justTestCase" anded="true"/> 
  </TypeSelector> 

  <TypeSelector name="staticInnerTypes" stereotype="static inner" topLevel="false" trigger="static inner types"> 
    <Modifier value="static"/> 
  </TypeSelector> 

  <TypeSelector name="typesWithStaticMembers" trigger="types with static members"> 
    <Declares typeSelector="staticInnerTypes"/> 
    <Declares fieldSelector="staticFields"/> 
    <Declares methodSelector="staticMethods"/> 
  </TypeSelector> 
   
  <TypeSelector name="nonMarkerInterfaces" interfaces="true" > 
    <Declares methodSelector="allMethods"/> 
    <Supertype typeSelector="nonMarkerInterfaces"/> 
  </TypeSelector> 
   
  <TypeSelector name="markerInterfaces" trigger="marker interfaces" interfaces="true" stereotype="marker interface"> 
    <Exclude typeSelector="nonMarkerInterfaces" anded="true"/> 
  </TypeSelector> 
   
  <TypeSelector name="declarerOfDefaultConstructor"> 
    <Declares methodSelector="defaultConstructors"/> 
  </TypeSelector> 
   
  <TypeSelector name="noDefaultConstructorClasses" interfaces="false"> 
    <Exclude typeSelector="declarerOfDefaultConstructor" anded="true"/> 
    <Declares methodSelector="nonDefaultConstructors" anded="true"/> 
  </TypeSelector> 
   
  <TypeSelector name="defaultConstructorClasses" trigger="classes with a default constructor" interfaces="false"> 
    <Exclude typeSelector="noDefaultConstructorClasses"/> 
  </TypeSelector> 

  <MethodSelector name="allMethods" trigger="all methods"/> 

  <MethodSelector name="getterMethods" namePattern="get*" trigger="getter methods"/> 

  <MethodSelector name="setterMethods" namePattern="set*" trigger="setter methods"/> 

  <MethodSelector name="methodsNamed" trigger="methods named" namePatternSwitch="methodName" requiredSwitches="methodName"/> 

  <MethodSelector constructors="true" name="constructors" trigger="constructors"/> 

  <MethodSelector name="nonDefaultConstructors" constructors="true"> 
    <ParameterType typeSelector="allTypes"/> 
  </MethodSelector> 
   
  <MethodSelector name="defaultConstructors" constructors="true"> 
    <Exclude methodSelector="nonDefaultConstructors"/> 
  </MethodSelector> 

  <MethodSelector name="overridingMethods" overriding="true" trigger="overriding methods"/> 

  <MethodSelector name="overloadedMethods" overloaded="true" trigger="overloaded methods"/> 

  <MethodSelector name="overriddenMethods" overridden="true" trigger="overridden methods"/> 

  <MethodSelector name="methodsOf" trigger="methods of" requiredSwitches="methodOwner"> 
    <DeclaredBy typeSelector="typesNamed" forwardedSwitches="methodOwner"/> 
  </MethodSelector> 

  <MethodSelector name="packageVisibleMethods" trigger="package visible methods"> 
    <Exclude methodSelector="publicMethods" anded="true"/> 
    <Exclude methodSelector="protectedMethods" anded="true"/> 
    <Exclude methodSelector="privateMethods" anded="true"/> 
  </MethodSelector> 

  <MethodSelector name="privateMethods" trigger="private methods"> 
    <Modifier value="private"/> 
  </MethodSelector> 

  <MethodSelector name="protectedMethods" trigger="protected methods"> 
    <Modifier value="protected"/> 
  </MethodSelector> 

  <MethodSelector name="publicMethods" trigger="public methods"> 
    <Modifier value="public"/> 
  </MethodSelector> 

  <MethodSelector name="staticMethods" trigger="static methods"> 
    <Modifier value="static"/> 
  </MethodSelector> 

  <MethodSelector name="synchronizedMethods" trigger="synchronized methods"> 
    <Modifier value="synchronized"/> 
  </MethodSelector> 

  <MethodSelector name="deprecatedMethods" trigger="deprecated methods"> 
    <Javadoc name="deprecated"/> 
    <Annotation name="Deprecated"/> 
  </MethodSelector> 

  <MethodSelector name="springMethods" trigger="spring methods"> 
    <Annotation name="Autowired"/> 
    <Annotation name="Order"/> 
    <Annotation name="Required"/> 
  </MethodSelector> 

  <MethodSelector name="jmxMethods" trigger="jmx methods"> 
    <Annotation name="ManagedAttribute"/> 
    <Annotation name="ManagedOperation"/> 
    <Annotation name="ManagedOperationParameter"/> 
    <Annotation name="ManagedOperationParameters"/> 
  </MethodSelector> 

  <MethodSelector name="aspectJMethods" trigger="aspectj methods"> 
    <Annotation name="After"/> 
    <Annotation name="AfterRunning"/> 
    <Annotation name="AfterThrowing"/> 
    <Annotation name="Around"/> 
    <Annotation name="Before"/> 
    <Annotation name="Pointcut"/> 
  </MethodSelector> 
   
  <MethodSelector name="mainMethods" trigger="main methods" namePattern="main"> 
    <Modifier value="public" anded="true"/> 
    <Modifier value="static" anded="true"/> 
  </MethodSelector> 

  <FieldSelector name="allFields" trigger="all fields"/> 

  <FieldSelector name="oneToManyFields" oneToMany="true" trigger="one to many fields"/> 

  <FieldSelector name="oneToOneFields" oneToMany="false" trigger="one to one fields"/> 

  <FieldSelector name="fieldsNamed" trigger="fields named" namePatternSwitch="namePattern" requiredSwitches="namePattern"/> 

  <FieldSelector name="packageVisibleFields" trigger="package visible fields">
    <Exclude fieldSelector="publicFields" anded="true"/> 
    <Exclude fieldSelector="protectedFields" anded="true"/> 
    <Exclude fieldSelector="privateFields" anded="true"/> 
  </FieldSelector> 

  <FieldSelector name="privateFields" trigger="private fields"> 
    <Modifier value="private"/> 
  </FieldSelector> 

  <FieldSelector name="protectedFields" trigger="protected fields"> 
    <Modifier value="protected"/> 
  </FieldSelector> 

  <FieldSelector name="publicFields" trigger="public fields"> 
    <Modifier value="public"/> 
  </FieldSelector> 

  <FieldSelector name="staticFields" trigger="static fields"> 
    <Modifier value="static"/> 
  </FieldSelector> 

  <FieldSelector name="fieldsWhichReferenceTheirDeclarer" matchesDeclarer="true" trigger="fields which reference their declarer"/> 

  <FieldSelector name="serialVersionUIDFields" namePattern="serialVersionUID" trigger="serial version uid fields"> 
    <Modifier value="static"/> 
  </FieldSelector> 

  <FieldSelector name="deprecatedFields" trigger="deprecated fields"> 
    <Javadoc name="deprecated"/> 
    <Annotation name="Deprecated"/> 
  </FieldSelector> 

  <FieldSelector name="fieldsOf" trigger="fields of" requiredSwitches="fieldOwner"> 
    <DeclaredBy typeSelector="typesNamed" forwardedSwitches="fieldOwner"/> 
  </FieldSelector> 

  <FieldSelector name="springFields" trigger="spring fields"> 
    <Annotation name="Autowired"/> 
    <Annotation name="Order"/> 
    <Annotation name="Qualifier"/> 
  </FieldSelector> 

  <FieldSelector name="aspectJFields" trigger="aspectj fields"> 
    <Modifier value="static"/> 
    <Annotation name="DeclareParents"/> 
  </FieldSelector> 

</AgileJConfiguration>