Projekt

Obecné

Profil

Stáhnout (2.61 KB) Statistiky
| Větev: | Tag: | Revize:
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
}
(18-18/20)