com.supermap.data
类 FieldInfos
- java.lang.Object
-
- com.supermap.data.InternalHandle
-
- com.supermap.data.InternalHandleDisposable
-
- com.supermap.data.FieldInfos
-
- 所有已实现的接口:
- IDisposable
public class FieldInfos extends com.supermap.data.InternalHandleDisposable字段信息集合类。该类可以单独创建使用,一个矢量数据集或记录集的所有字段的信息的集合即为一个字段信息集合类的一个实例。该类可以单独创建使用,也可以从矢量数据集或记录集中得到该类的对象。
- 示范代码:
- 以下代码实现对字段信息集合对象的添加,插入,交换,移除等操作。
private FieldInfos getFieldInfos() { //实例化字段信息对象数组 FieldInfo fieldinfo1 = new FieldInfo(); fieldinfo1.setCaption("one"); fieldinfo1.setName("value"); fieldinfo1.setDefaultValue("0"); FieldInfo fieldinfo2 = new FieldInfo(); fieldinfo2.setCaption("two"); fieldinfo2.setName("value2"); fieldinfo2.setType(FieldType.INT16); fieldinfo2.setDefaultValue("10"); FieldInfo[] fieldinfoarray = new FieldInfo[] {fieldinfo1, fieldinfo2}; //将数组添加到当前字段信息集合对象中 FieldInfos fieldinfos = new FieldInfos(); fieldinfos.addRange(fieldinfoarray); //实例化一个字段信息对象,将其插入当前字段信息集合对象中 FieldInfo fieldinfo3 = new FieldInfo(); fieldinfo3.setCaption("three"); fieldinfo3.setName("value3"); fieldinfo3.setDefaultValue("0"); fieldinfo3.setRequired(true); fieldinfos.insert(1, fieldinfo3); //交换当前字段信息集合对象中序号为1,2的字段信息对象 fieldinfos.exchange(1, 2); //从当前字段信息集中删除序号为0的字段信息对象 fieldinfos.remove(0); return fieldinfos; }
-
-
构造器概要
构造器 构造器和说明 FieldInfos()构造一个新的 FieldInfos 对象,该对象中的FieldInfo对象的个数为0。FieldInfos(FieldInfo[] fieldInfos)根据指定的参数来构造一个 FieldInfos 的新对象。FieldInfos(FieldInfos fieldInfos)根据给定的 FieldInfos 对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 实例方法 具体方法 已过时的方法 限定符和类型 方法和说明 intadd(FieldInfo fieldInfo)将指定字段信息对象添加到当前字段信息集合对象中。intaddRange(FieldInfo[] fieldInfos)将字段信息对象数组添加到当前字段信息集合对象中。voidclear()清除当前字段信息集合对象中的所有元素。FieldInfosclone()/** 返回当前 FieldInfos 对象的一个拷贝。voiddispose()释放该对象所占用的资源。voidexchange(int index1, int index2)交换当前字段信息集合中指定序号的两个字段信息对象。FieldInfoget(int index)返回字段信息集合对象中的指定序号的字段信息对象。FieldInfoget(String name)返回字段信息集合对象中的指定名称的字段信息对象。intgetCount()返回给定的字段信息集合中元素的个数。StringgetFieldNameBySign(FieldSign value)已过时。intindexOf(String name)返回指定名称的字段信息对象在当前字段信息集合中的序号。booleaninsert(int index, FieldInfo newItem)在当前字段信息集合对象中的指定位置添加一个字段信息对象。booleanmodify(String name, FieldInfo fieldInfo)修改指定字段名称的字段属性。booleanremove(int index)从当前字段信息集中删除指定序号的字段信息对象。booleanremove(String name)从当前字段信息集中删除指定名称的字段信息对象。FieldInfo[]toArray()将当前字段信息集合对象转换为一个字段信息对象数组。
-
-
-
构造器详细资料
-
FieldInfos
public FieldInfos()
构造一个新的 FieldInfos 对象,该对象中的FieldInfo对象的个数为0。
-
FieldInfos
public FieldInfos(FieldInfos fieldInfos)
根据给定的 FieldInfos 对象构造一个与其完全相同的新对象。- 参数:
fieldInfos- 指定的 FieldInfos 对象。
-
-
方法详细资料
-
getCount
public int getCount()
返回给定的字段信息集合中元素的个数。- 返回:
- 给定的字段信息集集合中元素的个数。
- 默认值:
- 默认值为 0。
-
get
public FieldInfo get(String name)
返回字段信息集合对象中的指定名称的字段信息对象。- 参数:
name- 指定项的名称,即指定的FieldInfo的名称。- 返回:
- 字段信息集集合对象中的指定名称的元素。
-
get
public FieldInfo get(int index)
返回字段信息集合对象中的指定序号的字段信息对象。- 参数:
index- 需要返回项的索引值,索引值从0开始。- 返回:
- 字段信息集集合对象中的指定序号的元素。
-
clone
public FieldInfos clone()
/** 返回当前 FieldInfos 对象的一个拷贝。
-
add
public int add(FieldInfo fieldInfo)
将指定字段信息对象添加到当前字段信息集合对象中。注意:添加字段时,如果字段的类型是必填字段,必须设置默认值,没有设置默认值时,添加失败。
- 参数:
fieldInfo- 要加入的字段对象。- 返回:
- fieldInfo 添加到此
FieldInfos对象实例中的序号。
-
modify
public boolean modify(String name, FieldInfo fieldInfo)
修改指定字段名称的字段属性。注意:字段类型是否支持修改取决于数据库实现,详细可查阅对应数据库文档(如PostgreSQL官方文档:ALTER TABLE ... TYPE限制条件})。部分字段类型修改可能因数据库限制而失败,例如:
- 文本类型(如CHAR,TEXT)无法转换为数值类型(如INT,DOUBLE);
- BLOB类型与字符类型之间不支持互转。
- 参数:
name- 待修改字段的名称。fieldInfo- 修改的字段属性信息。- 返回:
- 修改是否成功,成功返回true,失败返回false。
-
addRange
public int addRange(FieldInfo[] fieldInfos)
将字段信息对象数组添加到当前字段信息集合对象中。- 参数:
fieldInfos- 要添加到此FieldInfos对象实例的FieldInfo数组。- 返回:
- 添加的个数。
-
clear
public void clear()
清除当前字段信息集合对象中的所有元素。
-
exchange
public void exchange(int index1, int index2)交换当前字段信息集合中指定序号的两个字段信息对象。- 参数:
index1- 其中一个需要交换的字段信息对象的序号。index2- 另一个需要交换的字段信息对象的序号。
-
insert
public boolean insert(int index, FieldInfo newItem)在当前字段信息集合对象中的指定位置添加一个字段信息对象。- 参数:
index- 插入的位置,从0开始。newItem- 用来插入通过记录集返回的新的字段信息元素。- 返回:
- 如果成功返回 true,那么失败返回 false。
-
indexOf
public int indexOf(String name)
返回指定名称的字段信息对象在当前字段信息集合中的序号。- 参数:
name- 指定的 fieldInfo 的名称。- 返回:
- 名称为 name 的
FieldInfo在该 fieldInfos 中的序号。
-
remove
public boolean remove(String name)
从当前字段信息集中删除指定名称的字段信息对象。- 参数:
name- 将要删除的字段信息对象的名称。- 返回:
- 如果成功返回 true,那么失败返回 false。
-
remove
public boolean remove(int index)
从当前字段信息集中删除指定序号的字段信息对象。- 参数:
index- 将要删除元素的序号。- 返回:
- 如果成功返回 true,那么失败返回 false。
-
toArray
public FieldInfo[] toArray()
将当前字段信息集合对象转换为一个字段信息对象数组。- 返回:
- 字段信息对象数组。
-
dispose
public void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
-
getFieldNameBySign
@Deprecated public String getFieldNameBySign(FieldSign value)
已过时。根据指定字段标识返回相应字段的名称。 使用DatasetVector的GetFieldNameBySign接口代替说明:
- 具体的字段标识请参见
FieldSign。 - 对于
UDB数据源,字段标识为FieldSign.GEOMETRY时:- 线对象和面对象返回空字符串;
- 二维点对象返回“SMX,SMY”;
- 三维点对象返回“SMX,SMY,SMZ”。
- 参数:
value- 指定的字段标识。- 返回:
- 相应字段的名称。
- 示范代码:
- 以下代码示范如何根据字段标识获取相应字段的名称。
public void getFieldNameBySignTest(){ // 假设存在一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象。 // 从中取出名为“World”的矢量数据集 dataset。 DatasetVector dataset = (DatasetVector) datasource.getDatasets().get("World"); // 获取字段信息集合 FieldInfos fieldInfos = dataset.getFieldInfos(); // 根据字段标识获取相应字段的名称 fieldInfos.getFieldNameBySign(FieldSign.ID); fieldInfos.getFieldNameBySign(FieldSign.GEOMETRY); }
- 具体的字段标识请参见
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.