1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/*****************************************************************************
Copyright 2004 Steve M�nard
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*****************************************************************************/
#ifndef _JPARRAY_H_
#define _JPARRAY_H_
#ifndef PyObject_HEAD
struct _object;
typedef _object PyObject;
#endif
/**
* Class to wrap Java Class and provide low-level behavior
*/
class JPArray : public JPObjectBase
{
public :
JPArray(const JPTypeName& name, jarray inst);
virtual~ JPArray();
public :
JPArrayClass* getClass()
{
return m_Class;
}
int getLength();
vector<HostRef*> getRange(int start, int stop);
// return Python Sequence from underlying jarray
PyObject* getSequenceFromRange(int start, int stop);
void setRange(int start, int stop, vector<HostRef*>& val);
void setRange(int start, int stop, PyObject* sequence);
void setItem(int ndx, HostRef*);
HostRef* getItem(int ndx);
void setContent(vector<HostRef*>& data)
{
setRange(0, getLength(), data);
}
jobject getObject()
{
return JPEnv::getJava()->NewLocalRef(m_Object);
}
public : // Wrapper
virtual JPType* getType();
virtual jvalue getValue();
virtual JCharString toString();
private :
JPArrayClass* m_Class;
jarray m_Object;
};
#endif // _JPARRAY_H_
|