namestring.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 137 行
JAVA
137 行
/*
* $Id: NameString.java,v 1.1 2003/11/25 11:42:34 epr Exp $
*/
package org.jnode.driver.acpi.aml;
import java.util.Vector;
import java.nio.ByteBuffer;
/**
* NameString.
*
* <p>
* Title:
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: Copyright (c) 2003
* </p>
* <p>
* Company:
* </p>
*
* @author not attributable
* @version 1.0
*/
public class NameString implements Comparable {
String prefix;
Vector namePath = new Vector();
public NameString() {
}
public NameString(String prefix) {
this.prefix = prefix;
}
public int compareTo(Object o) {
if (o instanceof NameString) {
NameString compared = (NameString) o;
if (prefix.length() == compared.prefix.length()) {
if (namePath.size() == compared.namePath.size()) {
for (int i = 0; i < namePath.size(); i++) {
if (((String) namePath.elementAt(i)).equals(compared.namePath.elementAt(i)))
return 0;
}
}
}
}
return -1;
}
public boolean equals(Object o) {
if (o instanceof NameString) {
NameString compared = (NameString) o;
if (prefix == null) {
if (compared.prefix != null)
return false;
} else {
if (compared.prefix == null)
return false;
if (!prefix.equals(compared.prefix))
return false;
}
if (namePath.size() == compared.namePath.size()) {
for (int i = 0; i < namePath.size(); i++) {
if (((String) namePath.elementAt(i)).equals(compared.namePath.elementAt(i)))
return true;
}
}
}
return false;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getPrefix() {
return this.prefix;
}
public void add(String nameseg) {
namePath.add(nameseg);
}
public void addNamePath(ByteBuffer buffer) {
StringBuffer nameseg = new StringBuffer();
for (int i = 0; i < 4; i++)
nameseg.append((char) buffer.get());
this.add(nameseg.toString());
}
public void addDualNamePath(ByteBuffer buffer) {
//StringBuffer nameseg = new StringBuffer();
for (int i = 0; i < 2; i++)
addNamePath(buffer);
}
public void addMultiNamePath(ByteBuffer buffer) {
int count = (buffer.get() & 0xff);
for (int i = 0; i < count; i++)
addNamePath(buffer);
}
public int getSegCount() {
return namePath.size();
}
public void setNamePath(String namepath) {
namePath.setSize(0);
namePath.add(namepath);
}
public String getNameseg(int index) {
return (String) namePath.elementAt(index);
}
public String toString() {
StringBuffer result = new StringBuffer();
if (prefix != null)
result.append(prefix);
for (int i = 0; i < namePath.size(); i++) {
result.append((String) namePath.elementAt(i));
if (i < namePath.size() - 1)
result.append('.');
}
return result.toString();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?