view java/src/uk/ac/qmul/eecs/ccmi/network/AwarenessMessage.java @ 1:e3935c01cde2 tip

moved license of PdPersistenceManager to the beginning of the file
author Fiore Martin <f.martin@qmul.ac.uk>
date Tue, 08 Jul 2014 19:52:03 +0100
parents 78b7fc5391a2
children
line wrap: on
line source
/*  
 CCmI Editor - A Collaborative Cross-Modal Diagram Editing Tool
  
 Copyright (C) 2011  Queen Mary University of London (http://ccmi.eecs.qmul.ac.uk/)

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/  
package uk.ac.qmul.eecs.ccmi.network;

import uk.ac.qmul.eecs.ccmi.utils.PreferencesService;

public class AwarenessMessage extends Message {

	public AwarenessMessage(long timestamp, Name name, String diagram, DiagramEventActionSource source) {
		super(timestamp, diagram, source);
		this.name = name;
	}

	public AwarenessMessage(Name name, String diagram, DiagramEventActionSource source) {
		super(diagram, source);
		this.name = name;
	}
	
	public AwarenessMessage(Name name, String diagram, String source) {
		super(diagram, source);
		this.name = name;
	}

	@Override
	public Name getName() {
		return name;
	}
	
	public static Name valueOf(String n){
		Name name = Name.NONE_A;
		try {
			name = Name.valueOf(n);
		}catch(IllegalArgumentException iae){
			iae.printStackTrace();
		}
		return name;
	}
	
	public final static String NAME_POSTFIX = "_A";
	public static final String USERNAMES_SEPARATOR = "\n";
	private Name name;
	private static String defaultUserName = PreferencesService.getInstance().get("user.name", System.getProperty("user.name"));

	public enum Name implements Message.MessageName {
		START_A,
		STOP_A,
		GOON_A,
		USERNAME_A,
		ERROR_A,
		NONE_A;
	};
	
	public static String getDefaultUserName(){
		synchronized(AwarenessMessage.class){
			return defaultUserName;
		}
	}
	
	public static void setDefaultUserName(String userName){
		synchronized(AwarenessMessage.class){
			defaultUserName = userName ;
		}
	}
}