예제 #1
0
  /**
   * prefValueを (CODECのFQCN) + '@' + ({@link org.unitarou.linecodec.LineCodec#encode(Object)})
   * とみなして、CODECからObjectをデコードして返します。<br>
   * CODECのクラス名が取得できなかったり、 取得できてもそのインスタンスが取得できない場合は<code>null</code>を返します。
   *
   * @param prefValue
   * @return デコードされた結果。デコードに失敗した場合は<code>null</code>
   * @throws org.unitarou.lang.NullArgumentException
   */
  @Logging(level = WARN, stackTrace = false, contents = "CODECのロードに失敗した場合")
  public Object decode(String prefValue) {
    ArgumentChecker.throwIfNull(prefValue);

    int pos = prefValue.indexOf(SEPARATOR);
    if (pos == -1) {
      log_s_.log(DEBUG, "[IGNORE] Unknown type value: {0}", prefValue); // $NON-NLS-1$
      return null;
    }
    String className = prefValue.substring(0, pos);
    pos = pos + 1;
    String value = (pos < prefValue.length()) ? prefValue.substring(pos) : Strings.EMPTY;

    try {
      Class<?> clazz = getClass(className);
      LineCodec codec = codecMap_.get(clazz);
      if (codec == null) {
        codec = (LineCodec) clazz.newInstance();
      }
      return codec.decode(value);

    } catch (Exception e) {
      log_s_.log(WARN, "[IGNORE] {0}@{1}", prefValue, e.getLocalizedMessage()); // $NON-NLS-1$
    }
    return null;
  }
예제 #2
0
  /**
   * {@link TypeParseException}を送出しない代わりに、 パースに失敗した場合はnullを返します。
   *
   * @param size
   * @param value
   * @return NULLを返しうる。
   */
  public static Label parseQuietly(SgfSize size, String value) {
    try {
      return parse(size, value);
    } catch (TypeParseException e) {
      log_s_.log(DEBUG, e, "Bad value for parse: {0}", value); // $NON-NLS-1$
      return null;

    } catch (IllegalArgumentException e) {
      log_s_.log(DEBUG, e, "Bad value for parse: {0}", value); // $NON-NLS-1$
      return null;
    }
  }
예제 #3
0
 /**
  * アノテーションの場所を指定します。<br>
  * {@link #createContents(Composite)}より前に呼び出さないと効果がありません。
  *
  * @param alignment アノテーションの場所。NOT NULL
  * @throws org.unitarou.lang.NullArgumentException 引数(alignment)に<code>null</code>がある場合。
  */
 @Logging(level = LogLevel.WARN, contents = "createContents()後に呼ばれた場合")
 public final void setAlignment(Alignment alignment) {
   ArgumentChecker.throwIfNull(alignment);
   if (frame_ != null) {
     log_s_.log(WARN, "Widgit has already created(BUG)."); // $NON-NLS-1$
     return;
   }
   alignment_ = alignment;
 }
예제 #4
0
 /* (non-Javadoc)
  * @see java.lang.Object#finalize()
  */
 @Override
 protected void finalize() throws Throwable {
   try {
     if (!games_.isEmpty()) {
       log_s_.log(WARN, "{0} is not disposed.", this); // $NON-NLS-1$
       dispose();
     }
   } finally {
     super.finalize();
   }
 }
예제 #5
0
 /**
  * textが%から始まっているときはpropertiesのKeyとみなしてテキストを返します。 それ以外のときはそのまま返します。 Keyが見つからないときは警告を出して{@link
  * Strings#EMPTY}を返します。
  *
  * @param text
  * @param properties
  * @return 置き換えたあとの文字列
  */
 public static String convert(String text, Properties properties) {
   if (text.startsWith("%")) { // $NON-NLS-1$
     String key = text.substring(1);
     String ret = properties.getProperty(key);
     if (ret == null) {
       log_s_.log(WARN, "Can''t find the key={0}", key); // $NON-NLS-1$
       return Strings.EMPTY;
     }
     return ret;
   }
   return text;
 }