// Copyright (C) 2013 GerritForge www.gerritforge.com
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package mobi.jenkinsci.ci.model;
import mobi.jenkinsci.model.Alignment;
import mobi.jenkinsci.model.ItemNode;
import mobi.jenkinsci.model.Layout;
import mobi.jenkinsci.net.UrlPath;
import com.google.gson.annotations.SerializedName;
public class User extends JenkinsItem {
@SerializedName("user")
private UserFullName user;
@SerializedName("property")
private UserProperty property;
public String getEmailAddress() {
return property.address;
}
public String getAbsoluteUrl() {
return user.absoluteUrl;
}
public String getFullname() {
return user.fullname;
}
@Override
public ItemNode toAbstractNode(String urlPrefix) {
ItemNode result = new ItemNode();
result.setLayout(Layout.LIST);
result.setVersion(ItemNode.API_VERSION);
result.setTitle(getFullname());
result.setPath(UrlPath.normalizePath(path));
result.setIcon(UrlPath.normalizePath(path)+"?image=icons/user.png");
ItemNode child = new ItemNode("Name");
child.setDescriptionAlign(Alignment.RIGHT);
child.setDescription(getFullname());
//TODO
//result.addNode(child);
// TODO: email address is not available here we should make a 2 call to
// Jenkins to retrieve it
// child = new JenkinsCloudDataNode("Email");
// child.setDescriptionAlign(Alignment.RIGHT);
// child.setDescription(property.address);
// child.setAction("mailto://"+property.address);
// result.addNode(child);
result.setLeaf(true);
return result;
}
public class UserProperty {
@SerializedName("address")
public String address;
public UserProperty() {
;
}
}
public class UserFullName{
@SerializedName("fullName")
private String fullname;
@SerializedName("absoluteUrl")
private String absoluteUrl;
public String getAbsoluteUrl() {
return absoluteUrl;
}
public String getFullname() {
return fullname;
}
}
}