/** * 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; }
/** * {@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; } }
/** * アノテーションの場所を指定します。<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; }
/* (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(); } }
/** * 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; }