001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.plugin.column;
017
018 import org.opengion.hayabusa.db.AbstractRenderer;
019 import org.opengion.hayabusa.db.CellRenderer;
020 import org.opengion.hayabusa.db.DBColumn;
021
022 /**
023 * YMD レンãƒ?ƒ©ーは、カラãƒ??ãƒ??タを日ä»?年/æœ?日)表示する場合に使用するクラスですã?
024 * 9999年のãƒ??タは""(0ストリング)で返しますã?
025 *
026 * こã?クラスは、不変オブジェクトとして、å?有されますã?
027 *
028 * @og.group ãƒ??タ表示
029 *
030 * @version 4.0
031 * @author Kazuhiko Hasegawa
032 * @since JDK5.0,
033 */
034 public class Renderer_YMD31 extends AbstractRenderer {
035 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
036 private static final String VERSION = "5.5.7.2 (2012/10/09)" ;
037
038 private static final CellRenderer dbCell = new Renderer_YMD31() ;
039
040 /**
041 * å�?‚ªブジェクトからè?åˆ??インスタンスを返しますã?
042 * 自åˆ??身をキャãƒ?‚·ュするのかã?新たに作æ?するのかã?、各サブクラスの実è£?�«
043 * まかされますã?
044 *
045 * @og.rev 3.1.1.1 (2003/04/03) å�?‚ªブジェクトからè?åˆ??インスタンスを返すファクトリメソãƒ?ƒ‰を追åŠ??
046 * @og.rev 3.1.2.1 (2003/04/10) synchronized をã?削除しますã?
047 *
048 * @param clm DBColumnオブジェクãƒ?
049 *
050 * @return CellRendererオブジェクãƒ?
051 */
052 public CellRenderer newInstance( final DBColumn clm ) {
053 return dbCell;
054 }
055
056 /**
057 * ãƒ??タの表示用æ–?—å?を返しますã?
058 * ここでは、null ã�?ゼロæ–?—å?の場合ã?、ゼロæ–?—å?を返しますã?
059 * ?˜ケタ以下ã?ãƒ??タは、エラー表示を行いますã?
060 * ?˜ケタ以上ã?場合ã?、YYYYMMDDxxxxxx として、YYYY/MM/DD を返しますã?
061 * こã?クラスは、å?頭ã�?9999 の場合ã?、空æ–?—å?を返しますã?
062 *
063 * @og.rev 3.8.1.1 (2005/11/21) フォーマットエラー時には、class="error" を付けて表示させるã?
064 * @og.rev 5.5.7.2 (2012/10/09) 処ç�?ƒジãƒ?‚¯の見直ã�?
065 *
066 * @param value 入力å?
067 *
068 * @return ãƒ??タの表示用æ–?—å?
069 */
070 @Override
071 public String getValue( final String value ) {
072 if( value == null || value.length() == 0 || value.startsWith( "9999" ) ) { return ""; }
073
074 String rtn = value;
075
076 if( rtn.length() >= 8 ) {
077 char[] ch1 = new char[10];
078 ch1[0] = rtn.charAt(0);
079 ch1[1] = rtn.charAt(1);
080 ch1[2] = rtn.charAt(2);
081 ch1[3] = rtn.charAt(3);
082 ch1[4] = '/' ;
083 ch1[5] = rtn.charAt(4);
084 ch1[6] = rtn.charAt(5);
085 ch1[7] = '/' ;
086 ch1[8] = rtn.charAt(6);
087 ch1[9] = rtn.charAt(7);
088
089 rtn = new String( ch1 );
090 }
091 else {
092 rtn = "<span class=\"error\">" + value + "</span>";
093 }
094 return rtn;
095
096 // final String rtn;
097 // if( value == null || value.length() == 0 || value.startsWith( "9999" ) ) {
098 // rtn = "";
099 // }
100 // else if( value.length() >= 8 ) {
101 // StringBuilder buf = new StringBuilder( value );
102 // buf.insert( 6,'/' );
103 // buf.insert( 4,'/' );
104 // rtn = buf.toString();
105 // }
106 // else {
107 // rtn = "<span class=\"error\">" + value + "</span>";
108 // }
109 // return rtn;
110 }
111 }