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 * XXXX レンãƒ?ƒ©ãƒ¼ã¯ã€ãƒ‘ãƒ©ãƒ¡ãƒ¼ã‚¿ã§æŒ?®šã•れ㟠XXXXフォーマットã«å¯¾ã—ã¦ã€? 024 * 値を変æ›ã—ã¾ã™ã?ãŸã¨ãˆã?ã€?ƒµä¾¿ç•ªå·ã‚??電話番å·ãªã©ã€ãƒã‚¤ãƒ•ン編é›?‚„ã€æ—¥ä»˜ã‚„ 025 * 時刻ãªã©ã® / ã‚?: ç·¨é›?‚’行ã„ã¾ã™ã? 026 * ä¾? 1234567 XXX-XXXX â‡?123-4567 027 * ä¾? 1234567890 (XXX)-XXX-XXXX â‡?(123)-456-7890 028 * ä¾? 20060715 XXXX/XX/XX â‡?2006/07/15 029 * 030 * XXXX フォーマットよりデータãŒå°‘ãªã??åˆã?ã€ä»¥ä¸‹è¡¨ç¤ºã•れã¾ã›ã‚“ã€? 031 * XXXX-XXXX ã®å ´åˆã«ã€ãƒ‡ãƒ¼ã‚¿ãŒï¼”æ¡ã?å ´åˆã?ã€ãƒã‚¤ãƒ•ンã¯å«ã¾ã‚Œã¾ã›ã‚“ã€? 032 * 033 * フォーマットã?åˆæœŸå€¤ã¯XXXXXXXXXXXXXXXXXXXXã§ã™ã? 034 * 035 * カラãƒ??表示ã«å¿?¦ãªå±žæ?ã¯, DBColumn オブジェクãƒ?よりå–り出ã—ã¾ã™ã? 036 * ã“ã?クラスã¯ã€DBColumn オブジェクト毎ã«?‘ã¤ä½œæ?ã•れã¾ã™ã? 037 * 038 * @og.group ãƒ??タ表示 039 * 040 * @version 4.0 041 * @author Kazuhiko Hasegawa 042 * @since JDK5.0, 043 */ 044 public class Renderer_XXXX extends AbstractRenderer { 045 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 046 private static final String VERSION = "4.0.0.0 (2005/08/31)" ; 047 048 private final String form ; 049 050 /** 051 * ãƒ?ƒ•ォルトコンストラクターã€? 052 * ã“ã?コンストラクターã§ã€åŸºæœ¬ã‚ªãƒ–ジェクトを作æ?ã—ã¾ã™ã? 053 * 054 * @og.rev 3.1.1.1 (2003/04/03) å?‚ªãƒ–ジェクトã‹ã‚‰è?åˆ??インスタンスを返ã™ãƒ•ァクトリメソãƒ?ƒ‰ã‚’追åŠ?? 055 * 056 */ 057 public Renderer_XXXX() { 058 form = "XXXXXXXXXXXXXXXXXXXX"; 059 } 060 061 /** 062 * ãƒ?ƒ•ォルトコンストラクターã€? 063 * 064 * @param clm DBColumnオブジェクãƒ? 065 */ 066 private Renderer_XXXX( final DBColumn clm ) { 067 String tmp = clm.getRendererParam(); 068 if( tmp == null || tmp.length() == 0 ) { tmp = "XXXXXXXXXXXXXXXXXXXX"; } 069 form = tmp ; 070 } 071 072 /** 073 * å?‚ªãƒ–ジェクトã‹ã‚‰è?åˆ??インスタンスを返ã—ã¾ã™ã? 074 * 自åˆ??身をã‚ャãƒ?‚·ãƒ¥ã™ã‚‹ã®ã‹ã?æ–°ãŸã«ä½œæ?ã™ã‚‹ã®ã‹ã?ã€å„サブクラスã®å®Ÿè£?« 075 * ã¾ã‹ã•れã¾ã™ã? 076 * 077 * @param clm DBColumnオブジェクãƒ? 078 * 079 * @return CellRendererオブジェクãƒ? 080 */ 081 public CellRenderer newInstance( final DBColumn clm ) { 082 return new Renderer_XXXX( clm ); 083 } 084 085 /** 086 * ãƒ??ã‚¿ã®è¡¨ç¤ºç”¨æ–?—å?ã‚’è¿”ã—ã¾ã™ã? 087 * 088 * @param value 入力å? 089 * 090 * @return ãƒ??ã‚¿ã®è¡¨ç¤ºç”¨æ–?—å? 091 */ 092 @Override 093 public String getValue( final String value ) { 094 if( value == null ) { return ""; } 095 096 char[] formChar = form.toCharArray(); 097 char[] valChar = value.toCharArray(); 098 099 StringBuilder buf = new StringBuilder( formChar.length ); 100 int j = 0; 101 for( int i=0; i<formChar.length && j<valChar.length; i++ ) { 102 if( formChar[i] == 'X' ) { 103 buf.append( valChar[j++] ); 104 } 105 else { 106 buf.append( formChar[i] ); 107 } 108 } 109 110 return buf.toString(); 111 } 112 }