Statistics
| Branch: | Tag: | Revision:

root / src / gr / grnet / pithos / web / client / tagtree / Tag.java @ cae2a8db

History | View | Annotate | Download (5.1 kB)

1
/*
2
 * Copyright 2011-2012 GRNET S.A. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or
5
 * without modification, are permitted provided that the following
6
 * conditions are met:
7
 *
8
 *   1. Redistributions of source code must retain the above
9
 *      copyright notice, this list of conditions and the following
10
 *      disclaimer.
11
 *
12
 *   2. Redistributions in binary form must reproduce the above
13
 *      copyright notice, this list of conditions and the following
14
 *      disclaimer in the documentation and/or other materials
15
 *      provided with the distribution.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
18
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
 * POSSIBILITY OF SUCH DAMAGE.
29
 *
30
 * The views and conclusions contained in the software and
31
 * documentation are those of the authors and should not be
32
 * interpreted as representing official policies, either expressed
33
 * or implied, of GRNET S.A.
34
 */
35

    
36
package gr.grnet.pithos.web.client.tagtree;
37

    
38
import gr.grnet.pithos.web.client.foldertree.File;
39
import gr.grnet.pithos.web.client.foldertree.Resource;
40

    
41
import java.util.Date;
42
import java.util.LinkedHashSet;
43
import java.util.Set;
44

    
45
public class Tag extends Resource {
46
    /*
47
     * The name of the tag.
48
     */
49
    private String name = null;
50

    
51
    private Set<File> files = new LinkedHashSet<File>();
52

    
53
    public Tag() {};
54

    
55
    public Tag(String name) {
56
        this.name = name;
57
    }
58
    
59
    public String getName() {
60
        return name;
61
    }
62

    
63
//    public void populate(Response response) {
64
//        String header = response.getHeader("Last-Modified");
65
//        if (header != null)
66
//            lastModified = DateTimeFormat.getFormat(PredefinedFormat.RFC_2822).parse(header);
67
//
68
//        header = response.getHeader("X-Container-Bytes-Used");
69
//        if (header != null)
70
//            bytesUsed = Long.valueOf(header);
71
//
72
//        subfolders.clear(); //This is necessary in case we update a pre-existing Tag so that stale subfolders won't show up
73
//        files.clear();
74
//        JSONValue json = JSONParser.parseStrict(response.getText());
75
//        JSONArray array = json.isArray();
76
//        if (array != null) {
77
//            for (int i=0; i<array.size(); i++) {
78
//                JSONObject o = array.get(i).isObject();
79
//                if (o != null) {
80
//                    String contentType = unmarshallString(o, "content_type");
81
//                    if (o.containsKey("subdir") || (contentType != null && (contentType.startsWith("application/directory") || contentType.startsWith("application/folder")))) {
82
//                        Tag f = new Tag();
83
//                        f.populate(this, o, container);
84
//                        subfolders.add(f);
85
//                    }
86
//                    else {
87
//                        File file = new File();
88
//                        file.populate(this, o, container);
89
//                        files.add(file);
90
//                    }
91
//                }
92
//            }
93
//        }
94
//    }
95
//
96
//    public void populate(Tag parent, JSONObject o, String aContainer) {
97
//        this.parent = parent;
98
//        String path = null;
99
//        if (o.containsKey("subdir")) {
100
//            path = unmarshallString(o, "subdir");
101
//        }
102
//        else {
103
//            path = unmarshallString(o, "name");
104
//            lastModified = unmarshallDate(o, "last_modified");
105
//        }
106
//        if (path.endsWith("/"))
107
//            path = path.substring(0, path.length() - 1);
108
//        if (path.contains("/"))
109
//            name = path.substring(path.lastIndexOf("/") + 1, path.length()); //strip the prefix
110
//        else
111
//            name = path;
112
//        if (aContainer != null) {
113
//            container = aContainer;
114
//            prefix = path;
115
//        }
116
//        else {
117
//            container = name;
118
//            prefix = "";
119
//        }
120
//    }
121
//
122
//    public static Tag createFromResponse(Response response, Tag result) {
123
//        Tag f = null;
124
//        if (result == null)
125
//            f = new Tag();
126
//        else
127
//            f = result;
128
//
129
//        f.populate(response);
130
//        return f;
131
//    }
132

    
133
    @Override
134
    public boolean equals(Object other) {
135
        if (other instanceof Tag) {
136
            Tag o = (Tag) other;
137
            return name.equals(o.getName());
138
        }
139
        return false;
140
    }
141

    
142
    @Override
143
    public int hashCode() {
144
        return name.hashCode();
145
    }
146

    
147
    public Set<File> getFiles() {
148
        return files;
149
    }
150

    
151
        @Override
152
        public Date getLastModified() {
153
                return null;
154
        }
155
}