X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.utils.datastructures%2Fsrc%2Forg%2Fsimantics%2Futils%2Fdatastructures%2Fhints%2FIHintContext.java;h=d4c28e6a2835c58d5993c87c726bd6f34838d92c;hb=b48616484fd2324fc415187d151acbb94deb2493;hp=8391c55d53a482f45153ced6aa782d61ec3545b3;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git
diff --git a/bundles/org.simantics.utils.datastructures/src/org/simantics/utils/datastructures/hints/IHintContext.java b/bundles/org.simantics.utils.datastructures/src/org/simantics/utils/datastructures/hints/IHintContext.java
index 8391c55d5..d4c28e6a2 100644
--- a/bundles/org.simantics.utils.datastructures/src/org/simantics/utils/datastructures/hints/IHintContext.java
+++ b/bundles/org.simantics.utils.datastructures/src/org/simantics/utils/datastructures/hints/IHintContext.java
@@ -1,201 +1,201 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management
- * in Industry THTH ry.
- * 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:
- * VTT Technical Research Centre of Finland - initial API and implementation
- *******************************************************************************/
-/*
- *
- * @author Toni Kalajainen
- */
-package org.simantics.utils.datastructures.hints;
-
-import java.util.Map;
-
-/**
- * Hint context interface
- *
- * @see Key
- * @see HintContext
- * @see HintStack
- * @see IHintObservable
- */
-public interface IHintContext extends IHintObservable {
-
- /**
- * Set a value for a hint.
- * @param key key
- * @param value the value, null
is not accepted
- */
- void setHint(Key key, Object value);
-
- /**
- * Set a set of hints
- * @param hints
- */
- void setHints(Map hints);
-
- /**
- * Remove a hint. In stack hint implementation lower priority hint will
- * become effective.
-
- * @param type of the object bound to the specified key
- * @param key key to use for the hint
- * @return the typed object currently bound to the specified key
- */
- E removeHint(Key key);
-
- /**
- * Clears the context of all current hints without notifying any listeners.
- */
- void clearWithoutNotification();
-
- /**
- * Hint key
- */
- public static abstract class Key {
- /**
- * Test if value is accepted
- * @param value the value
- * @return true if value is accepted, false if not
- */
- public abstract boolean isValueAccepted(Object value);
- }
-
- /**
- * Mouse id specific key. With this key there is unique value for each mouse id.
- */
- public static abstract class MouseSpecificKey extends Key {
- private final int mouseId;
- public MouseSpecificKey(int mouseId)
- {
- this.mouseId = mouseId;
- }
- public int getMouseId()
- {
- return mouseId;
- }
- @Override
- public int hashCode() {
- return super.hashCode() ^ mouseId;
- }
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof MouseSpecificKey)) return false;
- if (((MouseSpecificKey)obj).mouseId != mouseId) return false;
- if (!obj.getClass().equals(getClass())) return false;
- return true;
- }
- }
-
- /**
- * Key whose value is of a specific given class.
- */
- public static class KeyOf extends Key {
- final Class> clazz;
- final String keyName;
- public KeyOf(Class> clazz)
- {
- this.clazz = clazz;
- this.keyName = null;
- }
- public KeyOf(Class> clazz, String keyName)
- {
- this.clazz = clazz;
- this.keyName = keyName;
- }
- @Override
- public boolean isValueAccepted(Object value) {
- return clazz.isInstance(value);
- }
- @Override
- public String toString() {
- if (keyName == null)
- return "Key Of "+clazz.getName();
- return keyName + "(" + clazz.getSimpleName() + ")";
- }
- }
-
- /**
- * String based key
- */
- public static abstract class StringKey extends Key {
- protected final String str;
- protected int hash;
- public StringKey(String str)
- {
- this.str = str;
- hash = getClass().hashCode() ^str.hashCode();
- }
- public String getString()
- {
- return str;
- }
- @Override
- public int hashCode() {
- return hash;
- }
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof StringKey)) return false;
- if (!((StringKey)obj).str.equals(str)) return false;
- if (obj.getClass()!=getClass()) return false;
- return true;
- }
- }
-
- /**
- * String based key whose value is of a specific class.
- */
- public static class StringKeyOf extends StringKey {
- final Class> clazz;
- public StringKeyOf(String str, Class> clazz)
- {
- super(str);
- this.clazz = clazz;
- }
- @Override
- public boolean isValueAccepted(Object value) {
- return clazz.isInstance(value);
- }
- @Override
- public String toString() {
- return "Key Of ("+clazz.getName()+", "+str+")";
- }
- }
-
-
- public static class MouseSpecificKeyOf extends MouseSpecificKey {
- public final Class> clazz;
- public final int mouseId;
- final int hash;
- public MouseSpecificKeyOf(int mouseId, Class> clazz)
- {
- super(mouseId);
- this.clazz = clazz;
- this.mouseId = mouseId;
- hash = getClass().hashCode() ^ mouseId ^ 24392439;
- }
- @Override
- public boolean isValueAccepted(Object value) {
- return clazz.isInstance(value);
- }
- @Override
- public int hashCode() {
- return hash;
- }
- @Override
- public boolean equals(Object obj) {
- if (obj.getClass()!=this.getClass()) return false;
- MouseSpecificKeyOf other = (MouseSpecificKeyOf) obj;
- return other.mouseId == mouseId;
- }
- }
-
-
-}
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * 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:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+/*
+ *
+ * @author Toni Kalajainen
+ */
+package org.simantics.utils.datastructures.hints;
+
+import java.util.Map;
+
+/**
+ * Hint context interface
+ *
+ * @see Key
+ * @see HintContext
+ * @see HintStack
+ * @see IHintObservable
+ */
+public interface IHintContext extends IHintObservable {
+
+ /**
+ * Set a value for a hint.
+ * @param key key
+ * @param value the value, null
is not accepted
+ */
+ void setHint(Key key, Object value);
+
+ /**
+ * Set a set of hints
+ * @param hints
+ */
+ void setHints(Map hints);
+
+ /**
+ * Remove a hint. In stack hint implementation lower priority hint will
+ * become effective.
+
+ * @param type of the object bound to the specified key
+ * @param key key to use for the hint
+ * @return the typed object currently bound to the specified key
+ */
+ E removeHint(Key key);
+
+ /**
+ * Clears the context of all current hints without notifying any listeners.
+ */
+ void clearWithoutNotification();
+
+ /**
+ * Hint key
+ */
+ public static abstract class Key {
+ /**
+ * Test if value is accepted
+ * @param value the value
+ * @return true if value is accepted, false if not
+ */
+ public abstract boolean isValueAccepted(Object value);
+ }
+
+ /**
+ * Mouse id specific key. With this key there is unique value for each mouse id.
+ */
+ public static abstract class MouseSpecificKey extends Key {
+ private final int mouseId;
+ public MouseSpecificKey(int mouseId)
+ {
+ this.mouseId = mouseId;
+ }
+ public int getMouseId()
+ {
+ return mouseId;
+ }
+ @Override
+ public int hashCode() {
+ return super.hashCode() ^ mouseId;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof MouseSpecificKey)) return false;
+ if (((MouseSpecificKey)obj).mouseId != mouseId) return false;
+ if (!obj.getClass().equals(getClass())) return false;
+ return true;
+ }
+ }
+
+ /**
+ * Key whose value is of a specific given class.
+ */
+ public static class KeyOf extends Key {
+ final Class> clazz;
+ final String keyName;
+ public KeyOf(Class> clazz)
+ {
+ this.clazz = clazz;
+ this.keyName = null;
+ }
+ public KeyOf(Class> clazz, String keyName)
+ {
+ this.clazz = clazz;
+ this.keyName = keyName;
+ }
+ @Override
+ public boolean isValueAccepted(Object value) {
+ return clazz.isInstance(value);
+ }
+ @Override
+ public String toString() {
+ if (keyName == null)
+ return "Key Of "+clazz.getName();
+ return keyName + "(" + clazz.getSimpleName() + ")";
+ }
+ }
+
+ /**
+ * String based key
+ */
+ public static abstract class StringKey extends Key {
+ protected final String str;
+ protected int hash;
+ public StringKey(String str)
+ {
+ this.str = str;
+ hash = getClass().hashCode() ^str.hashCode();
+ }
+ public String getString()
+ {
+ return str;
+ }
+ @Override
+ public int hashCode() {
+ return hash;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof StringKey)) return false;
+ if (!((StringKey)obj).str.equals(str)) return false;
+ if (obj.getClass()!=getClass()) return false;
+ return true;
+ }
+ }
+
+ /**
+ * String based key whose value is of a specific class.
+ */
+ public static class StringKeyOf extends StringKey {
+ final Class> clazz;
+ public StringKeyOf(String str, Class> clazz)
+ {
+ super(str);
+ this.clazz = clazz;
+ }
+ @Override
+ public boolean isValueAccepted(Object value) {
+ return clazz.isInstance(value);
+ }
+ @Override
+ public String toString() {
+ return "Key Of ("+clazz.getName()+", "+str+")";
+ }
+ }
+
+
+ public static class MouseSpecificKeyOf extends MouseSpecificKey {
+ public final Class> clazz;
+ public final int mouseId;
+ final int hash;
+ public MouseSpecificKeyOf(int mouseId, Class> clazz)
+ {
+ super(mouseId);
+ this.clazz = clazz;
+ this.mouseId = mouseId;
+ hash = getClass().hashCode() ^ mouseId ^ 24392439;
+ }
+ @Override
+ public boolean isValueAccepted(Object value) {
+ return clazz.isInstance(value);
+ }
+ @Override
+ public int hashCode() {
+ return hash;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (obj.getClass()!=this.getClass()) return false;
+ MouseSpecificKeyOf other = (MouseSpecificKeyOf) obj;
+ return other.mouseId == mouseId;
+ }
+ }
+
+
+}