001 /**
002 *
003 */
004 package de.jw.cloud42.webapp.tree;
005
006 import com.xerox.amazonws.ec2.GroupDescription;
007 import com.xerox.amazonws.ec2.GroupDescription.IpPermission;
008
009 /**
010 *
011 * Represents a tree node holding a IpPermission object.
012 * Returns a proper toString message for the associated permission.
013 *
014 *
015 * @author Frank
016 *
017 */
018 public class PermissionTreeNode {
019
020
021
022 /**
023 * The actual IpPermission.
024 */
025 private IpPermission ipPermission;
026
027 /**
028 * The group that the actual permission belongs to
029 */
030 private GroupDescription group;
031
032
033 /**
034 * @return the group
035 */
036 public GroupDescription getGroup() {
037 return group;
038 }
039
040 /**
041 * Use constructor to pass represented IpPermission.
042 * @param forGroup
043 */
044 public PermissionTreeNode(GroupDescription group, IpPermission forPermission){
045 this.group = group;
046 ipPermission = forPermission;
047 }
048
049 public IpPermission getIpPermission() {
050 return ipPermission;
051 }
052
053
054 /**
055 * Return permission details as readable string.
056 */
057 public String toString(){
058
059 String result = ipPermission.getProtocol().toUpperCase() + ": from port " +
060 ipPermission.getFromPort() + " to " + ipPermission.getToPort();
061
062 //check source mode
063 if (ipPermission.getIpRanges() != null && ipPermission.getIpRanges().size()>0){
064 String cidranges = "";
065 for (String cidr : ipPermission.getIpRanges()){
066 cidranges = cidranges + cidr + ", ";
067 }
068
069 result = result + " (Source CIDR " + cidranges.substring(0, cidranges.length()-2) + ")";
070
071 } else {
072 //Group Source mode
073 String pairs = "";
074 for (String[] pair : ipPermission.getUidGroupPairs()){
075 pairs = pairs + pair[0] + ":" + pair[1] + ", ";
076
077 }
078 result = result + " (Source (User:Group) " + pairs.substring(0, pairs.length()-2) + ")";
079
080 }
081
082
083 return result;
084
085 }
086
087
088
089
090 }