[jboss-jira] [JBoss JIRA] Resolved: (JASSIST-120) Please add CtCalss.getFields(boolean isIncludePrivate)
Shigeru Chiba (JIRA)
jira-events at lists.jboss.org
Thu Jul 8 20:26:46 EDT 2010
[ https://jira.jboss.org/browse/JASSIST-120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shigeru Chiba resolved JASSIST-120.
-----------------------------------
Resolution: Rejected
This feature can be implemented by an external function using getDeclaredFields().
I reject this proposal to keep the API simple and minimum.
> Please add CtCalss.getFields(boolean isIncludePrivate)
> ------------------------------------------------------
>
> Key: JASSIST-120
> URL: https://jira.jboss.org/browse/JASSIST-120
> Project: Javassist
> Issue Type: Feature Request
> Affects Versions: 3.12.0.GA
> Reporter: Yu Kobayashi
> Assignee: Shigeru Chiba
>
> Currently, CtClass.getFields() does not include private fields.
> This is same to java.lang.Class.getFields()
> But I wish to have CtClass.getFields(boolean isIncludePrivate).
> I made a patch for this.
> "src_original" includes JASSIST-119 and maybe line number is incorrect from 3.12.0.GA.
> diff -r -u src_original/main/javassist/CtClass.java src/main/javassist/CtClass.java
> --- src_original/main/javassist/CtClass.java 2010-05-27 15:00:24.940937600 +0900
> +++ src/main/javassist/CtClass.java 2010-05-27 15:06:13.862662400 +0900
> @@ -674,7 +674,9 @@
> * That array includes non-private fields inherited from the
> * superclasses.
> */
> - public CtField[] getFields() { return new CtField[0]; }
> + public CtField[] getFields() { return getFields(false); }
> +
> + public CtField[] getFields(boolean isIncludePrivate) { return new CtField[0]; }
>
> /**
> * Returns the field with the specified name. The returned field
> diff -r -u src_original/main/javassist/CtClassType.java src/main/javassist/CtClassType.java
> --- src_original/main/javassist/CtClassType.java 2010-05-27 15:01:16.094492800 +0900
> +++ src/main/javassist/CtClassType.java 2010-05-27 15:02:02.971899200 +0900
> @@ -859,19 +859,19 @@
> }
> }
>
> - public CtField[] getFields() {
> + public CtField[] getFields(boolean isIncludePrivate) {
> ArrayList alist = new ArrayList();
> - getFields(alist, this);
> + getFields(alist, this, isIncludePrivate);
> return (CtField[])alist.toArray(new CtField[alist.size()]);
> }
>
> - private static void getFields(ArrayList alist, CtClass cc) {
> + private static void getFields(ArrayList alist, CtClass cc, boolean isIncludePrivate) {
> int i, num;
> if (cc == null)
> return;
>
> try {
> - getFields(alist, cc.getSuperclass());
> + getFields(alist, cc.getSuperclass(), isIncludePrivate);
> }
> catch (NotFoundException e) {}
>
> @@ -879,7 +879,7 @@
> CtClass[] ifs = cc.getInterfaces();
> num = ifs.length;
> for (i = 0; i < num; ++i)
> - getFields(alist, ifs[i]);
> + getFields(alist, ifs[i], isIncludePrivate);
> }
> catch (NotFoundException e) {}
>
> @@ -888,7 +888,7 @@
> CtMember tail = memCache.lastField();
> while (field != tail) {
> field = field.next();
> - if (!Modifier.isPrivate(field.getModifiers()))
> + if (isIncludePrivate || !Modifier.isPrivate(field.getModifiers()))
> alist.add(field);
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list