package com.trendmicro.tme.mfr;
public class Exchange {
private boolean isQueue = true;
private String name = "";
private String broker = "";
// /////////////////////////////////////////////////////////////////////////////////////////
// isValidExchange supportly for openmq use only
public static boolean isValidExchange(String name) {
if(name == null || name.length() == 0)
return false;
if(name.startsWith("mq"))
return false;
if(name.contains("-") || name.contains("*") || name.contains(">"))
return false;
char c = name.charAt(0);
if(!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c == '_') || (c == '$')))
return false;
return true;
}
public Exchange() {
}
public Exchange(String ex_name) {
set(ex_name);
}
public void set(String ex_name) {
if(ex_name.startsWith("queue:")) {
isQueue = true;
name = ex_name.substring(6);
}
else if(ex_name.startsWith("topic:")) {
isQueue = false;
name = ex_name.substring(6);
}
else
name = ex_name;
}
@Override
public boolean equals(Object obj) {
return (((Exchange) obj).isQueue() == isQueue) && (((Exchange) obj).getName().equals(name));
}
@Override
public int hashCode() {
return toString().hashCode();
}
public void setBroker(String b) {
broker = b;
}
public String getBroker() {
return broker;
}
public String getName() {
return name;
}
public boolean isQueue() {
return isQueue;
}
public void setQueue() {
isQueue = true;
}
public void setTopic() {
isQueue = false;
}
public String toString() {
return String.format("%s:%s", isQueue ? "queue": "topic", name);
}
public void reset() {
name = "";
isQueue = true;
}
}