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 }