Save This Page
Home » openjdk-7 » net.sourceforge » neurosdbm » db » [javadoc | source]
    1   //
    2   //  Neuros Database Manipulator
    3   //  Copyright (C) 2003  Neuros Database Manipulator
    4   //
    5   //  This program is free software; you can redistribute it and/or modify
    6   //  it under the terms of the GNU General Public License as published by
    7   //  the Free Software Foundation; either version 2 of the License, or
    8   //  (at your option) any later version.
    9   //
   10   //  This program is distributed in the hope that it will be useful,
   11   //  but WITHOUT ANY WARRANTY; without even the implied warranty of
   12   //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   13   //  GNU General Public License for more details.
   14   //
   15   //  You should have received a copy of the GNU General Public License
   16   //  along with this program; if not, write to the Free Software
   17   //  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   18   //
   19   //  For information about Neuros Database Manipulator and its authors,
   20   //  please contact the Neuros Database Manipulator Web Site at
   21   //  http://neurosdbm.sourceforge.net
   22   //
   23   //
   24   
   25   package net.sourceforge.neurosdbm.db;
   26   
   27   import java.io.IOException;
   28   
   29   class Rule {
   30     
   31     private WordPointerToDisplayData ptrToName;
   32     private WordPointerToWordString ptrToFilename;
   33     private DisplayData name;
   34     private WordString filename;
   35     private int wordLength;
   36     
   37     Rule(byte[] bytes, int wordOffset) {
   38       wordLength = 0;
   39       
   40       ptrToName = new WordPointerToDisplayData(bytes, wordOffset+wordLength);
   41         wordLength += 2;
   42   
   43       ptrToFilename = new WordPointerToWordString(bytes, wordOffset+wordLength);
   44         wordLength += 2;
   45   
   46       name = new DisplayData(bytes, ptrToName);
   47       filename = new WordString(bytes, ptrToFilename);
   48     }
   49   
   50     
   51     Rule(WordPointerToDisplayData ptrToName,
   52          WordPointerToWordString ptrToFilename,
   53          DisplayData name, WordString filename) {
   54       this.ptrToName = ptrToName;
   55       this.ptrToFilename = ptrToFilename;
   56       this.name = name;
   57       this.filename = filename;
   58     }
   59   
   60     
   61     int getWordLength() {
   62       return wordLength;
   63     }
   64   
   65     int getDataLength() {
   66       int length = 0;
   67       if (!ptrToName.isNull())
   68         length += name.getWordLength();
   69       if (!ptrToFilename.isNull())
   70         length += filename.getWordLength();
   71       return length;
   72     }
   73   
   74     DisplayData getName() {
   75       return name;
   76     }
   77   
   78     WordString getFilename() {
   79       return filename;
   80     }
   81   
   82     void writePtrs(NIOFile file) throws IOException {
   83       file.append(ptrToName);
   84       file.append(ptrToFilename);
   85     }
   86     
   87     void writeData(NIOFile file) throws IOException {
   88       if (!ptrToName.isNull())
   89         name.write(file);
   90       if (!ptrToFilename.isNull())
   91         filename.write(file);
   92     }
   93     
   94     public String toString() {
   95       return "Rule: name={" + ptrToName + "}[" + name
   96         + "]  filename={" + ptrToFilename + "}[" + filename + "]";
   97     }
   98   }

Save This Page
Home » openjdk-7 » net.sourceforge » neurosdbm » db » [javadoc | source]