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.fukurou.util.StringUtil;
019 import org.opengion.hayabusa.db.AbstractDBType;
020
021 /**
022 * æƒ??機器事æ¥éƒ¨å‘ã‘ã€å“番æƒ??ã®æ–?—å?を扱ã?‚ºã®ã€ã‚«ãƒ©ãƒ?±žæ?を定義ã—ã¾ã™ã?
023 *
024 * å“番æƒ??ã¯ã€?¼????“å“番æƒ??ã¨ã—ã¦æ‰±ã‚れã¾ã™ã?ã¾ãŸã?ãれãžã‚Œã®ãƒ•ィールドã«ãŠã„ã¦ã€?
025 * 使用å¯èƒ½æ–??例ãˆã°ã€Revæ–?—å?ã®åˆ¶é™?ãªã©ã‚’è?æ…®ã—ã¦ã?¾ã™ã?
026 *
027 * 電気å“番(1æ¡ç›®ã?D' 5æ¡ç›®ã?8'OR'9')ã¯ã€ä¸?•ªæœ?¾Œã?æ¡ã‚’?˜ï¾‹ï¾žï½¼?žï½®?UP
028 * (ABCEFGHJKLMNPRSTUVWY)
029 * â–¡â–¡â–¡-â–¡â–¡â–¡â–¡â–¡-â–¡â–¡â–?
030 * 機械å“番(上記以外ã?å“番)ã¯ã€?0æ¡ç›®ã‚’リビシ?žï½®?UPã™ã‚‹ã€?
031 * â–¡â–¡â–¡-â–¡â–¡â–¡â–¡â–¡-â–¡â–?
032 * (0123456789ABCEFGHJKLMNPRSTUVWY)
033 *
034 * タイプãƒã‚§ãƒ?‚¯ã¨ã—ã¦ã€ä»¥ä¸‹ã?æ¡ä»¶ã‚’判定ã—ã¾ã™ã?
035 * ・æ–?—å?é•·ã¯ã€Byteæ›ç®—ã§ã®æ–?—æ•°ã¨ã®æ¯”è¼?
036 * ・åŠè§’æ–‡å—å?ãƒã‚§ãƒ?‚¯ã€?c < 0x20 || c > 0x7e 以外ã?エラー
037 * ・æ–?—パラメータ㮠æ£è¦è¡¨ç¾ãƒã‚§ãƒ?‚¯
038 * ・クãƒã‚¹ã‚µã‚¤ãƒˆã‚¹ã‚¯ãƒªãƒ—ティングãƒã‚§ãƒ?‚¯
039 *
040 * @og.group ãƒ??タ属æ?
041 *
042 * @version 4.0
043 * @author Kazuhiko Hasegawa
044 * @since JDK5.0,
045 */
046 public class DBType_PN extends AbstractDBType {
047 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */
048 private static final String VERSION = "4.0.0.0 (2005/08/31)" ;
049
050 private static final String DENKI_REV = "ABCEFGHJKLMNPRSTUVWY";
051 private static final String KIKAI_REV = "0123456789ABCEFGHJKLMNPRSTUVWY";
052
053 /**
054 * 製é€?“番ã®Rev ã‚?UPã—ãŸæ–?—å?ã‚’è¿”ã—ã¾ã™ã?
055 * 引数ã?null ã€ã‚¼ãƒæ–?—å?("")ã€ã?å ´åˆã?,物ç?š„åˆæœŸè¨å®šå?
056 * (String getDefault())ã®å€¤ã‚’è¿”ã—ã¾ã™ã?
057 * 10æ¡æœªæº??購入å“?Zå“番)ã€RevUPã§ããªã??åˆã?,ãã?ã¾ã¾ã®å“番を返ã—ã¾ã™ã?
058 *
059 * ä½?—ã€?›»æ°—å“番(1æ¡ç›®ã?D' 5æ¡ç›®ã?8'OR'9')ã¯ã€ä¸?•ªæœ?¾Œã?æ¡ã‚’?˜ï¾‹ï¾žï½¼?žï½®?UP
060 * â–¡â–¡â–¡-â–¡â–¡â–¡â–¡â–¡-â–¡â–¡â–?
061 * 機械å“番(上記以外ã?å“番)ã¯ã€?0æ¡ç›®ã‚’リビシ?žï½®?UPã™ã‚‹ã€?
062 * â–¡â–¡â–¡-â–¡â–¡â–¡â–¡â–¡-â–¡â–?
063 *
064 * @og.rev 2.1.3.0 (2002/12/12) RevUP 対象ã§ãªã?‚³ãƒ¼ãƒ‰ã‚’RevUPã™ã‚‹å ´åˆã?ä¸å?åˆå¯¾å¿?
065 *
066 * @param value Stringå¼•æ•°ã®æ–?—å?
067 *
068 * @return Stringå¼•æ•°ã®æ–?—å?を+1ã—ãŸæ–‡å—å?
069 */
070 @Override
071 public String valueAdd( final String value ) {
072 if( value == null || value.length() == 0 ) { return getDefault(); }
073 if( value.length() < 10 || value.charAt(0) == 'Z' ) { return value; }
074
075 char[] ch = value.toCharArray();
076
077 // 電気å“番ã®å ´å?
078 if( ch[0] == 'D' && ( ch[4] == '8' || ch[4] == '9' ) ) {
079 if( value.length() < 11 ) { return value; } // 2002.07.12
080 int pos = DENKI_REV.indexOf( (int)ch[10] );
081 if( pos >= 0 ) { ch[10] = DENKI_REV.charAt( pos+1 ); }
082 else { ch[10] ++ ; } // 2.1.3.0 追�
083 }
084 else {
085 int pos = KIKAI_REV.indexOf( (int)ch[9] );
086 if( pos >= 0 ) { ch[9] = KIKAI_REV.charAt( pos+1 ); }
087 else { ch[9] ++ ; } // 2.1.3.0 追�
088 }
089
090 return new String( ch );
091 }
092
093 /**
094 * エãƒ?‚£ã‚¿ãƒ¼ã§ç·¨é›?•れãŸãƒ??タを登録ã™ã‚‹å ´åˆã«ã€ãƒ‡ãƒ¼ã‚¿ãã?ã‚‚ã?ã‚?
095 * 変æ›ã—ã¦ã€å®Ÿç™»éŒ²ãƒ??タを作æ?ã—ã¾ã™ã?
096 * ãƒ??ã‚¿ã®è¡¨ç¤ºç”¨æ–?—å?ã‚’è¿”ã—ã¾ã™ã?
097 * XXX-XXXXX-XXX å½¢å¼ã§å…¥åŠ›ã•ã‚ŒãŸæƒ??ã‚’ã?XXXXXXXXXXX å½¢å¼ã§è¡¨ç¤ºã—ã¾ã™ã?
098 * ã‚«ãƒ?ƒˆ???ースト対ç–ã§ã™ã?
099 *
100 * @og.rev 3.8.6.1 (2006/10/24) æ–°è¦è¿½åŠ?
101 *
102 * @param value (ä¸?ˆ¬ã«ç·¨é›?ƒ‡ãƒ¼ã‚¿ã¨ã—ã¦ç™»éŒ²ã•れãŸãƒ‡ãƒ¼ã‚¿)
103 *
104 * @return ä¿®æ£å¾Œã?æ–?—å?(ä¸?ˆ¬ã«ãƒ??タベã?スã«ç™»éŒ²ã™ã‚‹ãƒ??ã‚¿)
105 */
106 @Override
107 public String valueSet( final String value ) {
108 String newVal = StringUtil.rTrim( value );
109
110 if( newVal != null && newVal.indexOf( '-' ) >= 0 ) {
111 newVal = StringUtil.replace( newVal,"-","" );
112 }
113
114 return newVal;
115 }
116 }