⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 service.java

📁 goText is a program for mobile phones that allows you to send text messages over GPRS/EDGE/UMTS. It
💻 JAVA
字号:
/**
 * Class : short description
 * @author Michele 'Miccar' Cardinale miccar@gmail.com
 * @author Natale Vinto ebballon@interfree.it
 * @version 1.0
 */

 /*
  *  goText : text messaging over GPRS
  *  Copyright (C) 2006  Natale Vinto <ebballon@interfree.it>
  *  OpenJLab Group www.openjlab.org
  *  Copyright (C) 2006  Michele Cardinale 'Miccar' <miccar@gmail.com>
  *  www.miccar.org
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 2 of the License, or
  *  (at your option) any later version.
  *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *      GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */

import javax.microedition.rms.*;
import java.util.*;

public class Service{
    
    public static final int MAX_MEM_SERVICES=20;
    
    private static final int INDEX_NAME=0;
    private static final int INDEX_ADDRESS=1;
    private static final int INDEX_NEED_USER=2;
    private static final int INDEX_USER=3;
    private static final int INDEX_NEED_PASS=4;
    private static final int INDEX_PASS=5;
    private static final int INDEX_NEED_NICK=6;
    private static final int INDEX_NICK=7;
    private static final int INDEX_MAX_RECIPIENTS=8;
    private static final int INDEX_MAX_CHARS=9;
    private static final int INDEX_MAX_MSG=10;
    private static final int INDEX_SENT_MSG=11;
    private static final int INDEX_IS_NUMERIC_RECIPIENT=12;
    private static final int INDEX_SIGN=13;
    
    static String token=";";
    static String RN="_services";
    private String serviceString;
    
    
    /** Creates a new instance of Service */
    public Service(String stringa) {
        this.setString(stringa);
    }
    
    private void setString(String stringa){
        this.serviceString=stringa;
    }
    
    public String getString(){
        return this.serviceString;
    }
    
    public String getName(){
        return utils.splitString(this.serviceString, token)[this.INDEX_NAME];
    }
    
    public String getAddress(){
        return utils.splitString(this.serviceString, token)[this.INDEX_ADDRESS];
    }
    
    public int getNeedUser(){
        return Integer.parseInt(utils.splitString(this.serviceString, token)[this.INDEX_NEED_USER]);
    }
    
    public String getUser(){
        return utils.splitString(this.serviceString, token)[this.INDEX_USER];
    }
    
    public int getNeedPass(){
        return Integer.parseInt(utils.splitString(this.serviceString, token)[this.INDEX_NEED_PASS]);
    }
    
    public String getPass(){
        return utils.splitString(this.serviceString, token)[this.INDEX_PASS];
    }
    
    public int getNeedNick(){
        return Integer.parseInt(utils.splitString(this.serviceString, token)[this.INDEX_NEED_NICK]);
    }
    
    public String getNick(){
        return utils.splitString(this.serviceString, token)[this.INDEX_NICK];
    }
    
    public int getMaxRecipients(){
        return Integer.parseInt(utils.splitString(this.serviceString, token)[this.INDEX_MAX_RECIPIENTS]);
    }
    
    public int getMaxChars(){
        return Integer.parseInt(utils.splitString(this.serviceString, token)[this.INDEX_MAX_CHARS]);
    }
    
     public int getMaxCharsWithSign(){
        return getMaxChars()-(getSign().length()>0?getSign().length()+1:0);
    }
    
    public int getMaxMsg(){
        return Integer.parseInt(utils.splitString(this.serviceString, token)[this.INDEX_MAX_MSG]);
    }
    
    public int getSentMsg(){
        return Integer.parseInt(utils.splitString(this.serviceString, token)[this.INDEX_SENT_MSG]);
    }
    
    public int getIsNumericRecipient(){
        return Integer.parseInt(utils.splitString(this.serviceString, token)[this.INDEX_IS_NUMERIC_RECIPIENT]);
    }
    
    public String getSign(){
        return utils.splitString(this.serviceString, token)[this.INDEX_SIGN];
    }
    
    public int set(String name,String address,int needuser,String user,int needpass,String pass,int neednick,String nick,int maxrecipients,int maxchars,int maxmsg,int sentmsg,int isnumericrecipient,String sign){
        /*
         * Permette di modificare i parametri del servizio.
         * Restituisce il risultato della chiamata a modService (0 o -1 ERRORE,
         * un qualunque numero maggiore di 0 OK).
         */
        String nuova=name+token;
        nuova+=address+token;
        nuova+=needuser+token;
        nuova+=user+token;
        nuova+=needpass+token;
        nuova+=pass+token;
        nuova+=neednick+token;
        nuova+=nick+token;
        nuova+=maxrecipients+token;
        nuova+=maxchars+token;
        nuova+=maxmsg+token;
        nuova+=sentmsg+token;
        nuova+=isnumericrecipient+token;
        nuova+=sign;
        return Service.modService(nuova, this.getRmsId());
    }
    
     public int increaseSentMsg(int incr){
        /*
         * Incrementa di uno il num di messaggi inviati per il servizio
         * selezionato. Ritorna il nuovo numero di mess inviati oppure -1 nel
         * caso di errore.
         */
        int sentmsg=this.getSentMsg()+incr;
        String nuova=this.getName()+token;
        nuova+=this.getAddress()+token;
        nuova+=this.getNeedUser()+token;
        nuova+=this.getUser()+token;
        nuova+=this.getNeedPass()+token;
        nuova+=this.getPass()+token;
        nuova+=this.getNeedNick()+token;
        nuova+=this.getNick()+token;
        nuova+=this.getMaxRecipients()+token;
        nuova+=this.getMaxChars()+token;
        nuova+=this.getMaxMsg()+token;
        nuova+=sentmsg+token;
        nuova+=this.getIsNumericRecipient()+token;
        nuova+=this.getSign();
        if(Service.modService(nuova, this.getRmsId())>0)
            return this.getSentMsg();
        else
            return -1;
    }
    
     
    public int resetSentMsg(){
        /*
         * Resetta il num di messaggi inviati per il servizio selezionato.
         * Ritorna il nuovo numero di mess inviati oppure -1 nel caso di errore.
         */
        int sentmsg=0;
        String nuova=this.getName()+token;
        nuova+=this.getAddress()+token;
        nuova+=this.getNeedUser()+token;
        nuova+=this.getUser()+token;
        nuova+=this.getNeedPass()+token;
        nuova+=this.getPass()+token;
        nuova+=this.getNeedNick()+token;
        nuova+=this.getNick()+token;
        nuova+=this.getMaxRecipients()+token;
        nuova+=this.getMaxChars()+token;
        nuova+=this.getMaxMsg()+token;
        nuova+=sentmsg+token;
        nuova+=this.getIsNumericRecipient()+token;
        nuova+=this.getSign();
        if(Service.modService(nuova, this.getRmsId())>0)
            return this.getSentMsg();
        else
            return -1;
    }
    
    public int getRmsId(){
        RecordStore rs=null;
        try{
            rs=RecordStore.openRecordStore(RN, true);
            RecordEnumeration e=rs.enumerateRecords(new RSUtils().new FilterByRegionString(this.serviceString),null,true);
            if(e.hasNextElement()){
                return e.nextRecordId();
            } else {
                return -1;
            }
        } catch (Exception e){
            return -2;
        } finally {
            try{
                rs.closeRecordStore();
            } catch (Exception e){}
        }
    }
    
    public boolean isConfigured(){
        if ((this.getNeedUser()==1)&&(this.getUser().length()<1))
            return false;
        if ((this.getNeedPass()==1)&&(this.getPass().length()<1))
            return false;
        if ((this.getNeedNick()==1)&&(this.getNick().length()<1))
            return false;
        return true;
    }
   
    
    // STATICI
    
    private static Service[] servicesArray() {
        if(Service.servicesList()==null) {
            return null;
        } else {
            Service[] services_array=new Service[Service.servicesList().size()];
            Service.servicesList().copyInto(services_array);
            return services_array;
        }
        
    }
    
    private static Vector servicesList() {
        Vector services_list=new Vector();
        RecordStore rs=null;
        try{
            rs=RecordStore.openRecordStore(RN, true);
            RecordEnumeration e=rs.enumerateRecords(null,null,true);
            while(e.hasNextElement()){
                services_list.addElement(new Service(new String(e.nextRecord())));
            }
            
        } catch (Exception e){
        } finally {
            try{
                rs.closeRecordStore();
            } catch (Exception e){
                
            }
        }
        return services_list;
    }
    
    private static boolean isValidServiceString(String stringa){
        /*
         * Effettua il check della stringa passata per creare/modificare un
         * servizio. Ritorna TRUE se la stringa 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -