blob: cdf7ef3c393dcaa12ffa976abc230ef93394d7d0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 Boeing.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Boeing - initial API and implementation
*******************************************************************************/
package org.eclipse.ote.message.lookup;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MessageLookupResult {
private final String messageName;
private String messageClass;
private String messageType;
private int id;
private int byteSize;
private String phase;
private String rate;
private String scheduled;
private List<String> elements;
private List<String> publishers;
private List<String> subscribers;
private boolean sorted;
public MessageLookupResult(String messageClass, String messageName, String messageType, int id){
this(messageClass, messageName, messageType, id, 0, null, null, null);
}
public MessageLookupResult(String messageClass, String messageName, String messageType, int id, int byteSize, String phase, String rate, String scheduled){
this.messageName = messageName;
this.messageClass = messageClass;
this.messageType = messageType;
this.id = id;
this.byteSize = byteSize;
this.phase = phase;
this.rate = rate;
this.scheduled = scheduled;
elements = new ArrayList<String>();
publishers = new ArrayList<String>();
subscribers = new ArrayList<String>();
sorted = true;
}
@Override
public String toString(){
return String.format("%s name[%s] type[%s] id[%d], byteSize[%d], phase[%s], rate[%s], scheduled[%s]", messageClass, messageName, messageType, id, byteSize, phase, rate, scheduled);
}
public String getMessageName() {
return messageName;
}
public String getClassName() {
return messageClass;
}
public String getMessageType(){
return messageType;
}
public int getMessageId() {
return id;
}
public int getByteSize() {
return byteSize;
}
public String getPhase() {
return phase;
}
public String getRate() {
return rate;
}
public String getScheduled() {
return scheduled;
}
public void addElement(String element) {
if (element != null && !element.isEmpty() && !elements.contains(element)) {
elements.add(element);
sorted = false;
}
}
public List<String> getElements() {
sort();
return elements;
}
public void addPublisher(String publisher) {
if (publisher != null && !publisher.isEmpty() && !publishers.contains(publisher)) {
publishers.add(publisher);
sorted = false;
}
}
public List<String> getPublishers() {
sort();
return publishers;
}
public void addSubscriber(String subscriber) {
if (subscriber != null && !subscriber.isEmpty() && !subscribers.contains(subscriber)) {
subscribers.add(subscriber);
sorted = false;
}
}
public List<String> getSubscribers() {
sort();
return subscribers;
}
private void sort() {
if (!sorted) {
Collections.sort(elements);
Collections.sort(publishers);
Collections.sort(subscribers);
sorted = true;
}
}
}