Projekt

Obecné

Profil

Stáhnout (2.09 KB) Statistiky
| Větev: | Tag: | Revize:
1
package jdeserialize;
2

    
3
import java.util.*;
4

    
5
/**
6
 * Represents an instance of a non-enum, non-Class, non-ObjectStreamClass,
7
 * non-array class, including the non-transient field values, for all classes in
8
 * its hierarchy and inner classes.
9
 */
10
public class instance extends contentbase {
11
    /**
12
     * Collection of field data, organized by class description.
13
     */
14
    public Map<classdesc, Map<field, Object>> fielddata;
15

    
16
    /**
17
     * Class description for this instance.
18
     */
19
    public classdesc classdesc;
20

    
21
    /**
22
     * Constructor.
23
     */
24
    public instance() {
25
        super(contenttype.INSTANCE);
26
        this.fielddata = new HashMap<classdesc, Map<field, Object>>();
27
    }
28

    
29
    public String toString() {
30
        StringBuffer sb = new StringBuffer();
31

    
32
        // ClassName
33
        sb.append("{\n\tclass ").append(classdesc.name);
34
        // extends
35
        if (classdesc.superclass != null) {
36
            sb.append(" extends ").append(classdesc.superclass.name);
37
        }
38
        // implements
39
        if (classdesc.interfaces != null) {
40
            sb.append(" implements ");
41
            for (String str : classdesc.interfaces) {
42
                sb.append(str);
43
            }
44
        }
45
        sb.append(" : {"); // ending of first line
46

    
47
        for (field f : classdesc.fields) {
48
            // v this.fielddata najit element, jehoz key == classdesc
49
            // v tomto prvku fielddata najdu value (element) podle key == f
50
            // jeho value je chtena hodnota
51
            String val = this.fielddata.get(classdesc).get(f).toString();
52
            sb.append("\n\t\t");
53
            // Datový typ není potřeba - json jej nepoužívá!
54
            sb.append("\"")./* append(f.type.getJavaType()).append(" "). */append(f.name).append("\"");
55
            sb.append(" : ");
56
            sb.append(val);
57

    
58
            if (!f.equals(classdesc.fields[classdesc.fields.length - 1])) {
59
                sb.append(", ");
60
            }
61
        }
62

    
63
        sb.append("\n\t}\n}");
64

    
65
        return sb.toString();
66
    }
67

    
68
    /**
69
     * Object annotation data.
70
     */
71
    public Map<classdesc, List<content>> annotations;
72
}
(18-18/20)