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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
/*****************************************************************************
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.
See NOTICE file for details.
*****************************************************************************/
#ifndef _JPFIELD_H_
#define _JPFIELD_H_
/**
* Field object
*/
class JPField
{
public:
/**
* Create a new field based on class and java.lang.Field object
*/
JPField(JPJavaFrame& frame,
JPClass *cls,
const string& name,
jobject field,
jfieldID fid,
JPClass *fieldType,
jint modifiers);
/**
* destructor
*/
virtual ~JPField();
// disallow copying.
JPField(const JPField&) = delete;
JPField& operator=(const JPField&) = delete;
jobject getJavaObject()
{
return this->m_Field.get();
}
const string& getName() const
{
return m_Name;
}
JPPyObject getStaticField();
void setStaticField(PyObject *pyobj);
JPPyObject getField(jobject inst);
void setField(jobject inst, PyObject *pyobj);
bool isFinal() const
{
return JPModifier::isFinal(m_Modifiers);
}
bool isStatic() const
{
return JPModifier::isStatic(m_Modifiers);
}
JPClass *getClass() const
{
return m_Class;
}
private:
string m_Name;
JPClass* m_Class;
JPObjectRef m_Field;
jfieldID m_FieldID;
JPClass* m_Type;
jint m_Modifiers;
} ;
#endif // _JPFIELD_H_
|