Class JavaToXmiuml

java.lang.Object
  |
  +--com.sun.javadoc.Doclet
        |
        +--JavaToXmiuml

public class JavaToXmiuml
extends com.sun.javadoc.Doclet


Classe principale che contiene il metodo start, scrive su stdout il codice Xmi


Field Summary
(package private) static com.sun.javadoc.FieldDoc[] assocFields
          
Memorizza la classe associata con la classe correntemente esaminata.

(package private) static com.sun.javadoc.ClassDoc[] classes
          
Memorizza le classi passate a Javadoc

(package private) static com.sun.javadoc.ConstructorDoc[] constructors
          
Memorizza i costruttori della classe che la doclet sta esaminando.

(package private) static java.lang.String exporter
           
(package private) static java.lang.String exporterversion
           
(package private) static com.sun.javadoc.FieldDoc[] fields
          
Memorizza i campi della classe che la doclet sta esaminando.

(package private) static int indentlevel
          
Variabile utilizzata per indentare l'output Xmi.

(package private) static com.sun.javadoc.MethodDoc[] methods
          
Memorizza i metodi della classe che la doclet sta esaminando.

(package private) static java.util.Vector nonLeafClass
          
Vettore che memorizza tutte le classi che non sono foglia (ovvero che sono
superclassi di un'altra classe).

(package private) static com.sun.javadoc.Parameter[] parameters
          
Memorizza i parametri di un metodo.

(package private) static int posAss
          
Variabile ausiliaria.

(package private) static com.sun.javadoc.Tag[] tags
          
Memorizza gli eventuali tag di un campo (viene considerato comunque solo l'eventuale tag @explicit_association)

(package private) static java.util.Vector usedType
          
Vettore che memorizza istanze della classe ReturnCheckType, un'istanza per ogni tipo di dato (primitivo o no) utilizzato.
Il vettore usedType viene riempito progressivamente durante l'esecuzione del doclet e utilizzato alla fine per creare le sezioni dataType.

 
Constructor Summary
JavaToXmiuml()
           
 
Method Summary
(package private) static int[] allPosition(com.sun.javadoc.MethodDoc method)
          
Ritorna un array di interi che indica il numero di metodi (nella prima cella dell'array) e la posizione, all'interno dell'array dei metodi, dei metodi con lo stesso nome del metodo passato come parametro

(package private) static returnCheckType checkType(com.sun.javadoc.Type thisType)
          
Ritorna un'istanza della classe returnCheckType che descrive il Type thisType.
(package private) static void Close_Level(java.lang.String row)
          
abbassa il livello di indentazione e scrive un tag di chiusura

(package private) static void fillLeafClass()
          
Riempie il vettore nonLeafClass con le classi non foglia.

(package private) static java.lang.String getAssociationEndId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ClassDoc assocClass)
          
Tutte i metodi del tipo get_elemento_Id ritornano l'identificatore unico nel
documento Xmi del particolare elemento.
(package private) static java.lang.String getAssociationId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ClassDoc assocClass)
           
(package private) static java.lang.String getAssociationStartId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ClassDoc assocClass)
           
(package private) static java.lang.String getClassId(com.sun.javadoc.ClassDoc curClass)
           
(package private) static java.lang.String getConstructorId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ConstructorDoc curCon, java.lang.String progressive)
           
(package private) static java.lang.String getDatatypeId(returnCheckType dataType)
           
(package private) static java.lang.String getFieldId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.FieldDoc curField)
           
(package private) static java.lang.String getGeneralizationId(com.sun.javadoc.ClassDoc curClass)
           
(package private) static java.lang.String getGeneralizeInterfaceId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ClassDoc curInterf)
           
(package private) static java.lang.String getOperationId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.MethodDoc curMet, java.lang.String progressive)
           
(package private) static java.lang.String getParameterId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ConstructorDoc curCon, java.lang.String progressive, java.lang.String curParamName)
           
(package private) static java.lang.String getParameterId(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.MethodDoc curMet, java.lang.String progressive, java.lang.String curParamName)
           
(package private) static boolean isInternal(com.sun.javadoc.ClassDoc testClass)
          
Ritorna TRUE se la classe e' tra quelle passate a javadoc per essere esaminata, FALSE altrimenti.
(package private) static boolean isLeaf(com.sun.javadoc.ClassDoc theClass)
          
Ritorna TRUE se la classe theClass non e' presente nell'array nonLeafClass,FALSE altrimenti.

(package private) static void Open_Level(java.lang.String row)
          
scrive un tag di apertura e aumenta il livello di indentazione.

(package private) static void Remark(java.lang.String row)
          
scrive una riga di commento
Es.Remark("<!-- The UML Model begins -->");
produce
<!-- The UML Model begins -->

static boolean start(com.sun.javadoc.RootDoc root)
          
start()
apre xmi
scrive sezione xmi.header
apre xmi.content
Write_Model() -- scrive UML model
Write_Datatypes() - scrive classi esterne e tipi di dati primitivi
chiude xmi.content
chiude xmi

(package private) static java.lang.String umlMult(java.lang.String dimension)
          
Ritorna la dimensione di un attributo, data la dimensione in formato stringa.
Esempio:
"" --> "1"
"[]" --> "*"
"[][]" --> "*,*"

(package private) static void Write_Association(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.FieldDoc curField)
          
Write_Association()
{
apre e descrive una association
scrive la prima AssociationEnd
scrive la seconda AssociationEnd
chiude la association
}

(package private) static void Write_Attribute(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.FieldDoc curField)
          
Write_Attribute()
{
apre, descrive e chiude un attributo
}

(package private) static void Write_Class(com.sun.javadoc.ClassDoc curClass, boolean isaRef)
          
Write_Class()
{
apre e descrive una classe
if (isInternal(classe)) Write_Features()
chiude classe
}

(package private) static void Write_Constructor(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ConstructorDoc curCon, java.lang.String progressive)
          
Write_Constructor()
{
apre e descrive un costruttore
foreach(parameter) Write_Parameter()
chiude il costruttore
}

(package private) static void Write_DataType(returnCheckType dataName)
          
Write_Datatype()
{
apre, descrive e chiuse un tipo primitivo
}

(package private) static void Write_DataTypes()
          
Write_Datatypes()
{
foreach(usedtype)
{
if (isPrimitive) Write_DataType()
else Write_Class()
}
}

(package private) static void Write_Features(com.sun.javadoc.ClassDoc curClass)
          
Write_Features()
{
apre sezione delle features
foreach(field) Write_Attribute()
foreach(constructor) Write_Constructor()
foreach(method) Write_Method()
chiude features

}
(package private) static void Write_Implements(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ClassDoc curInterf)
          
Write_Implements()
{
apre, descrive e chiude la generalizzazione di un'interfaccia implementata
}

(package private) static void Write_Model()
          
Write_Model()
{
apre UML model
foreach(class)
{
Write_Class()
foreach(explicit_association) Write_Association()
if (isInternal(superclass)) Write_SuperClass()
foreach(interface implementata) Write_Implements()
}
chiude UML model
}

(package private) static void Write_Operation(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.MethodDoc curMet, java.lang.String progressive)
          
Write_Operation()
{
apre e descrive un'operazione
foreach(parameter) Write_Parameter()
Write_ReturnParameter()
chiude l'operazione
}

(package private) static void Write_Parameter(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.ConstructorDoc curCon, java.lang.String progressive, com.sun.javadoc.Parameter curParam)
          
Write_Parameter()
{
apre, descrive e chiude un parametro
}

(package private) static void Write_Parameter(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.MethodDoc curMet, java.lang.String progressive, com.sun.javadoc.Parameter curParam)
           
(package private) static void Write_ReturnParameter(com.sun.javadoc.ClassDoc curClass, com.sun.javadoc.MethodDoc curMet, java.lang.String progressive)
          
Write_ReturnParamter()
{
apre, descrive e chiude il parametro di ritorno
}

(package private) static void Write_SuperClass(com.sun.javadoc.ClassDoc curClass)
          
Write_SuperClass()
{
apre, descrive e chiude la generalizzazione della superclass
}

(package private) static void Writeln(java.lang.String row)
          
Scrive una riga

 
Methods inherited from class com.sun.javadoc.Doclet
optionLength, validOptions
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

classes

static com.sun.javadoc.ClassDoc[] classes

Memorizza le classi passate a Javadoc


fields

static com.sun.javadoc.FieldDoc[] fields

Memorizza i campi della classe che la doclet sta esaminando.


methods

static com.sun.javadoc.MethodDoc[] methods

Memorizza i metodi della classe che la doclet sta esaminando.


constructors

static com.sun.javadoc.ConstructorDoc[] constructors

Memorizza i costruttori della classe che la doclet sta esaminando.


tags

static com.sun.javadoc.Tag[] tags

Memorizza gli eventuali tag di un campo (viene considerato comunque solo l'eventuale tag @explicit_association)


parameters

static com.sun.javadoc.Parameter[] parameters

Memorizza i parametri di un metodo.


usedType

static java.util.Vector usedType

Vettore che memorizza istanze della classe ReturnCheckType, un'istanza per ogni tipo di dato (primitivo o no) utilizzato.
Il vettore usedType viene riempito progressivamente durante l'esecuzione del doclet e utilizzato alla fine per creare le sezioni dataType.


nonLeafClass

static java.util.Vector nonLeafClass

Vettore che memorizza tutte le classi che non sono foglia (ovvero che sono
superclassi di un'altra classe).


indentlevel

static int indentlevel

Variabile utilizzata per indentare l'output Xmi.


exporter

static final java.lang.String exporter

exporterversion

static final java.lang.String exporterversion

posAss

static int posAss

Variabile ausiliaria.


assocFields

static com.sun.javadoc.FieldDoc[] assocFields

Memorizza la classe associata con la classe correntemente esaminata.

Constructor Detail

JavaToXmiuml

public JavaToXmiuml()
Method Detail

start

public static boolean start(com.sun.javadoc.RootDoc root)

start()
apre xmi
scrive sezione xmi.header
apre xmi.content
Write_Model() -- scrive UML model
Write_Datatypes() - scrive classi esterne e tipi di dati primitivi
chiude xmi.content
chiude xmi


Write_Model

static void Write_Model()

Write_Model()
{
apre UML model
foreach(class)
{
Write_Class()
foreach(explicit_association) Write_Association()
if (isInternal(superclass)) Write_SuperClass()
foreach(interface implementata) Write_Implements()
}
chiude UML model
}


Write_DataTypes

static void Write_DataTypes()

Write_Datatypes()
{
foreach(usedtype)
{
if (isPrimitive) Write_DataType()
else Write_Class()
}
}


Write_DataType

static void Write_DataType(returnCheckType dataName)

Write_Datatype()
{
apre, descrive e chiuse un tipo primitivo
}


Write_Class

static void Write_Class(com.sun.javadoc.ClassDoc curClass,
                        boolean isaRef)

Write_Class()
{
apre e descrive una classe
if (isInternal(classe)) Write_Features()
chiude classe
}


Write_Features

static void Write_Features(com.sun.javadoc.ClassDoc curClass)

Write_Features()
{
apre sezione delle features
foreach(field) Write_Attribute()
foreach(constructor) Write_Constructor()
foreach(method) Write_Method()
chiude features

}

Write_SuperClass

static void Write_SuperClass(com.sun.javadoc.ClassDoc curClass)

Write_SuperClass()
{
apre, descrive e chiude la generalizzazione della superclass
}


Write_Implements

static void Write_Implements(com.sun.javadoc.ClassDoc curClass,
                             com.sun.javadoc.ClassDoc curInterf)

Write_Implements()
{
apre, descrive e chiude la generalizzazione di un'interfaccia implementata
}


Write_Association

static void Write_Association(com.sun.javadoc.ClassDoc curClass,
                              com.sun.javadoc.FieldDoc curField)

Write_Association()
{
apre e descrive una association
scrive la prima AssociationEnd
scrive la seconda AssociationEnd
chiude la association
}


Write_Attribute

static void Write_Attribute(com.sun.javadoc.ClassDoc curClass,
                            com.sun.javadoc.FieldDoc curField)

Write_Attribute()
{
apre, descrive e chiude un attributo
}


Write_Operation

static void Write_Operation(com.sun.javadoc.ClassDoc curClass,
                            com.sun.javadoc.MethodDoc curMet,
                            java.lang.String progressive)

Write_Operation()
{
apre e descrive un'operazione
foreach(parameter) Write_Parameter()
Write_ReturnParameter()
chiude l'operazione
}


Write_Constructor

static void Write_Constructor(com.sun.javadoc.ClassDoc curClass,
                              com.sun.javadoc.ConstructorDoc curCon,
                              java.lang.String progressive)

Write_Constructor()
{
apre e descrive un costruttore
foreach(parameter) Write_Parameter()
chiude il costruttore
}


Write_ReturnParameter

static void Write_ReturnParameter(com.sun.javadoc.ClassDoc curClass,
                                  com.sun.javadoc.MethodDoc curMet,
                                  java.lang.String progressive)

Write_ReturnParamter()
{
apre, descrive e chiude il parametro di ritorno
}


Write_Parameter

static void Write_Parameter(com.sun.javadoc.ClassDoc curClass,
                            com.sun.javadoc.ConstructorDoc curCon,
                            java.lang.String progressive,
                            com.sun.javadoc.Parameter curParam)

Write_Parameter()
{
apre, descrive e chiude un parametro
}


Write_Parameter

static void Write_Parameter(com.sun.javadoc.ClassDoc curClass,
                            com.sun.javadoc.MethodDoc curMet,
                            java.lang.String progressive,
                            com.sun.javadoc.Parameter curParam)

getDatatypeId

static java.lang.String getDatatypeId(returnCheckType dataType)

getClassId

static java.lang.String getClassId(com.sun.javadoc.ClassDoc curClass)

getFieldId

static java.lang.String getFieldId(com.sun.javadoc.ClassDoc curClass,
                                   com.sun.javadoc.FieldDoc curField)

getOperationId

static java.lang.String getOperationId(com.sun.javadoc.ClassDoc curClass,
                                       com.sun.javadoc.MethodDoc curMet,
                                       java.lang.String progressive)

getConstructorId

static java.lang.String getConstructorId(com.sun.javadoc.ClassDoc curClass,
                                         com.sun.javadoc.ConstructorDoc curCon,
                                         java.lang.String progressive)

getParameterId

static java.lang.String getParameterId(com.sun.javadoc.ClassDoc curClass,
                                       com.sun.javadoc.MethodDoc curMet,
                                       java.lang.String progressive,
                                       java.lang.String curParamName)

getParameterId

static java.lang.String getParameterId(com.sun.javadoc.ClassDoc curClass,
                                       com.sun.javadoc.ConstructorDoc curCon,
                                       java.lang.String progressive,
                                       java.lang.String curParamName)

getGeneralizationId

static java.lang.String getGeneralizationId(com.sun.javadoc.ClassDoc curClass)

getGeneralizeInterfaceId

static java.lang.String getGeneralizeInterfaceId(com.sun.javadoc.ClassDoc curClass,
                                                 com.sun.javadoc.ClassDoc curInterf)

getAssociationId

static java.lang.String getAssociationId(com.sun.javadoc.ClassDoc curClass,
                                         com.sun.javadoc.ClassDoc assocClass)

getAssociationStartId

static java.lang.String getAssociationStartId(com.sun.javadoc.ClassDoc curClass,
                                              com.sun.javadoc.ClassDoc assocClass)

getAssociationEndId

static java.lang.String getAssociationEndId(com.sun.javadoc.ClassDoc curClass,
                                            com.sun.javadoc.ClassDoc assocClass)

Tutte i metodi del tipo get_elemento_Id ritornano l'identificatore unico nel
documento Xmi del particolare elemento.


umlMult

static java.lang.String umlMult(java.lang.String dimension)

Ritorna la dimensione di un attributo, data la dimensione in formato stringa.
Esempio:
"" --> "1"
"[]" --> "*"
"[][]" --> "*,*"


isInternal

static boolean isInternal(com.sun.javadoc.ClassDoc testClass)

Ritorna TRUE se la classe e' tra quelle passate a javadoc per essere esaminata, FALSE altrimenti.


checkType

static returnCheckType checkType(com.sun.javadoc.Type thisType)

Ritorna un'istanza della classe returnCheckType che descrive il Type thisType. Se il tipo e' primitivo o la classe e' esterna, aggiunge l'istanza returnCheckType relativa a Type al vettore usedType (se non ancora presente)


allPosition

static int[] allPosition(com.sun.javadoc.MethodDoc method)

Ritorna un array di interi che indica il numero di metodi (nella prima cella dell'array) e la posizione, all'interno dell'array dei metodi, dei metodi con lo stesso nome del metodo passato come parametro


fillLeafClass

static void fillLeafClass()

Riempie il vettore nonLeafClass con le classi non foglia.


isLeaf

static boolean isLeaf(com.sun.javadoc.ClassDoc theClass)

Ritorna TRUE se la classe theClass non e' presente nell'array nonLeafClass,FALSE altrimenti.


Open_Level

static void Open_Level(java.lang.String row)

scrive un tag di apertura e aumenta il livello di indentazione.


Writeln

static void Writeln(java.lang.String row)

Scrive una riga


Remark

static void Remark(java.lang.String row)

scrive una riga di commento
Es.Remark("<!-- The UML Model begins -->");
produce
<!-- The UML Model begins -->


Close_Level

static void Close_Level(java.lang.String row)

abbassa il livello di indentazione e scrive un tag di chiusura