Code Search for Developers
 
 
  

ExternalTagMap.java from Magellan-Client at Krugle


Show ExternalTagMap.java syntax highlighted

/*
 *  Copyright (C) 2000-2004 Roger Butenuth, Andreas Gampe,
 *                          Stefan Goetz, Sebastian Pappert,
 *                          Klaas Prause, Enno Rehling,
 *                          Sebastian Tusk, Ulrich Kuester,
 *                          Ilja Pavkovic
 *
 * This file is part of the Eressea Java Code Base, see the
 * file LICENSING for the licensing information applying to
 * this file.
 *
 */

package com.eressea.util;

import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

import com.eressea.ID;
import com.eressea.util.logging.Logger;

/**
 * TODO: DOCUMENT ME!
 *
 * @author $author$
 * @version $Revision: 171 $
 */
public class ExternalTagMap extends HashMap {
	private static final Logger log = Logger.getInstance(ExternalTagMap.class);
	private static final String METHOD_NAME = "getID";

	protected ID getID(Object o) {
		if(o instanceof ID) {
			return (ID) o;
		}

		Class c = o.getClass();

		try {
			Method m = c.getMethod(METHOD_NAME, null);

			if(m != null) {
				try {
					Object o2 = m.invoke(o, null);

					if(o2 instanceof ID) {
						return (ID) o2;
					}
				} catch(Exception inner) {
				}
			}
		} catch(NoSuchMethodException nsme) {
			log.error("Error trying to get ID: " + o);
		}

		return null;
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param o TODO: DOCUMENT ME!
	 * @param tag TODO: DOCUMENT ME!
	 * @param value TODO: DOCUMENT ME!
	 *
	 * @return TODO: DOCUMENT ME!
	 */
	public String putTag(Object o, String tag, String value) {
		ID id = getID(o);

		if(id == null) {
			return null;
		}

		if(!containsKey(id)) {
			put(id, new TagMap());
		}

		Map m = (Map) get(id);

		return (String) m.put(tag, value);
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param o TODO: DOCUMENT ME!
	 * @param tag TODO: DOCUMENT ME!
	 *
	 * @return TODO: DOCUMENT ME!
	 */
	public String getTag(Object o, String tag) {
		ID id = getID(o);

		if(id == null) {
			return null;
		}

		Map m = (Map) get(id);

		if(m == null) {
			return null;
		}

		return (String) m.get(tag);
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param o TODO: DOCUMENT ME!
	 * @param tag TODO: DOCUMENT ME!
	 *
	 * @return TODO: DOCUMENT ME!
	 */
	public boolean containsTag(Object o, String tag) {
		ID id = getID(o);

		if(id == null) {
			return false;
		}

		Map m = (Map) get(id);

		if(m == null) {
			return false;
		}

		return m.containsKey(tag);
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param o TODO: DOCUMENT ME!
	 * @param tag TODO: DOCUMENT ME!
	 *
	 * @return TODO: DOCUMENT ME!
	 */
	public String removeTag(Object o, String tag) {
		ID id = getID(o);

		if(id == null) {
			return null;
		}

		Map m = (Map) get(id);

		if(m == null) {
			return null;
		}

		return (String) m.remove(tag);
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param o TODO: DOCUMENT ME!
	 * @param create TODO: DOCUMENT ME!
	 *
	 * @return TODO: DOCUMENT ME!
	 */
	public Map getTagMap(Object o, boolean create) {
		ID id = getID(o);

		if(id == null) {
			return null;
		}

		Map m = (Map) get(id);

		if((m == null) && create) {
			m = new TagMap();
			put(id, m);
		}

		return m;
	}
}




See more files for this project here

Magellan-Client

The Magellan Client is basicly a GUI for the pbem game eressea but can be used for other pbems based on \"atlantis\" too.

Project homepage: http://sourceforge.net/projects/magellan-client
Programming language(s): Java
License: other

  comparator/
    tree/
      GroupingComparator.java
    AllianceFactionComparator.java
    BestSkillComparator.java
    BuildingTypeComparator.java
    FactionDetailComparator.java
    FactionTrustComparator.java
    IDComparator.java
    LinearUnitTempUnitComparator.java
    MessageTypeComparator.java
    MessageTypeSectionComparator.java
    NameComparator.java
    NaturalOrderComparator.java
    PotionLevelComparator.java
    RegionIslandComparator.java
    SkillComparator.java
    SkillTypeComparator.java
    SkillTypeRankComparator.java
    SortIndexComparator.java
    SpecifiedSkillTypeSkillComparator.java
    SpellLevelComparator.java
    TaggableComparator.java
    TopmostRankedSkillComparator.java
    UnitCombatStatusComparator.java
    UnitContainerOwnerComparator.java
    UnitFactionComparator.java
    UnitFactionDisguisedComparator.java
    UnitGroupComparator.java
    UnitHealthComparator.java
    UnitIslandComparator.java
    UnitPreferredFactionComparator.java
    UnitRegionComparator.java
    UnitSkillComparator.java
    UnitTempUnitComparator.java
    UnitTrustComparator.java
  filters/
    UnitFactionFilter.java
    UnitFactionTLFilter.java
    UnitFilter.java
  logging/
    AWTLogger.java
  replacers/
  BookmarkManager.java
  Bucket.java
  Cache.java
  CacheHandler.java
  CollectionFactory.java
  Colors.java
  Direction.java
  Distance.java
  EresseaItemCategoryConstants.java
  EresseaOptionConstants.java
  EresseaOrderConstants.java
  EresseaRaceConstants.java
  EresseaSkillConstants.java
  ExternalTagMap.java
  FileHistory.java
  FileNameGenerator.java
  FileNameGeneratorFeed.java
  FixedWidthWriter.java
  IDBaseConverter.java
  ImageFactory.java
  Islands.java
  IteratorEnumeration.java
  JECheck.java
  JVMUtilities.java
  LanguageDialog.java
  Locales.java
  Log.java
  MagellanFinder.java
  MemoryManagment.java
  MergeLineReader.java
  NameGenerator.java
  OrderReader.java
  OrderToken.java
  OrderTokenizer.java
  OrderWriter.java
  OrderedHashtable.java
  OrderedOutputProperties.java
  PNG.java
  PropertiesHelper.java
  Regions.java
  RendererLoader.java
  ReportMerger.java
  SelectionHistory.java
  SelfCleaningProperties.java
  ShipRoutePlanner.java
  Sizeof.java
  SkillStats.java
  Sorted.java
  SpellSyntax.java
  SpellSyntaxToken.java
  StringFactory.java
  TagMap.java
  Taggable.java
  TextEncodingPreferences.java
  Translations.java
  TrustLevels.java
  Umlaut.java
  UnitRoutePlanner.java
  Units.java
  Version.java
  VersionInfo.java