1
|
package jdeserialize;
|
2
|
import java.util.*;
|
3
|
|
4
|
/**
|
5
|
* Represents an instance of a non-enum, non-Class, non-ObjectStreamClass,
|
6
|
* non-array class, including the non-transient field values, for all classes in its
|
7
|
* hierarchy and inner classes.
|
8
|
*/
|
9
|
public class instance extends contentbase {
|
10
|
/**
|
11
|
* Collection of field data, organized by class description.
|
12
|
*/
|
13
|
public Map<classdesc, Map<field, Object>> fielddata;
|
14
|
|
15
|
/**
|
16
|
* Class description for this instance.
|
17
|
*/
|
18
|
public classdesc classdesc;
|
19
|
|
20
|
/**
|
21
|
* Constructor.
|
22
|
*/
|
23
|
public instance() {
|
24
|
super(contenttype.INSTANCE);
|
25
|
this.fielddata = new HashMap<classdesc, Map<field, Object>>();
|
26
|
}
|
27
|
public String toString() {
|
28
|
StringBuffer sb = new StringBuffer();
|
29
|
|
30
|
//ClassName
|
31
|
sb.append("{\n\tclass ").append(classdesc.name);
|
32
|
//extends
|
33
|
if(classdesc.superclass != null)
|
34
|
{
|
35
|
sb.append(" extends ").append(classdesc.superclass.name);
|
36
|
}
|
37
|
//implements
|
38
|
if(classdesc.interfaces != null)
|
39
|
{
|
40
|
sb.append(" implements ");
|
41
|
for(String str : classdesc.interfaces)
|
42
|
{
|
43
|
sb.append(str);
|
44
|
}
|
45
|
}
|
46
|
sb.append(" : {"); //ending of first line
|
47
|
|
48
|
for(field f : classdesc.fields)
|
49
|
{
|
50
|
/*if(f.type.getJavaType() != null)
|
51
|
{*/
|
52
|
//v this.fielddata najit element, jehoz key == classdesc
|
53
|
//v tomto prvku fielddata najdu value (element) podle key == f
|
54
|
//jeho value je chtena hodnota
|
55
|
var val = this.fielddata.get(classdesc).get(f).toString();
|
56
|
sb.append("\n\t\t");
|
57
|
//Datový typ není potřeba - json jej nepoužívá!
|
58
|
sb.append("\"")./*append(f.type.getJavaType()).append(" ").*/append(f.name).append("\"");
|
59
|
sb.append(" : ");
|
60
|
sb.append("\"").append(val).append("\"");
|
61
|
/*}
|
62
|
else if(f.classname != null)
|
63
|
{
|
64
|
content val = (content) this.fielddata.get(classdesc).get(f);
|
65
|
sb.append("\n\t\t");
|
66
|
sb.append("\"").append(f.name).append("\"");
|
67
|
sb.append(" : ");
|
68
|
sb.append("\"").append(val.toString()).append("\"");
|
69
|
}*/
|
70
|
|
71
|
if(!f.equals(classdesc.fields[classdesc.fields.length-1]))
|
72
|
{
|
73
|
sb.append(", ");
|
74
|
}
|
75
|
}
|
76
|
|
77
|
sb.append("\n\t}\n}");
|
78
|
|
79
|
return sb.toString();
|
80
|
}
|
81
|
/**
|
82
|
* Object annotation data.
|
83
|
*/
|
84
|
public Map<classdesc, List<content>> annotations;
|
85
|
}
|