ComputedProperties with parametrized List need to keep the parametrized type
authorJaroslav Tulach <jaroslav.tulach@netbeans.org>
Tue, 11 Feb 2014 22:10:22 +0100
changeset 56276a91ecf3ca9
parent 561 2154ee9467e9
child 564 23d02a4b299e
ComputedProperties with parametrized List need to keep the parametrized type
json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java
json/src/test/java/net/java/html/json/ModelTest.java
json/src/test/java/net/java/html/json/PersonImpl.java
     1.1 --- a/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java	Tue Feb 11 21:20:04 2014 +0100
     1.2 +++ b/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java	Tue Feb 11 22:10:22 2014 +0100
     1.3 @@ -615,7 +615,11 @@
     1.4              
     1.5              String[] gs = toGetSet(sn, tn, array);
     1.6              
     1.7 -            w.write("  public " + tn + " " + gs[0] + "() {\n");
     1.8 +            w.write("  public " + tn);
     1.9 +            if (array) {
    1.10 +                w.write("<" + toCheck + ">");
    1.11 +            }
    1.12 +            w.write(" " + gs[0] + "() {\n");
    1.13              int arg = 0;
    1.14              for (VariableElement pe : ee.getParameters()) {
    1.15                  final String dn = pe.getSimpleName().toString();
     2.1 --- a/json/src/test/java/net/java/html/json/ModelTest.java	Tue Feb 11 21:20:04 2014 +0100
     2.2 +++ b/json/src/test/java/net/java/html/json/ModelTest.java	Tue Feb 11 22:10:22 2014 +0100
     2.3 @@ -295,6 +295,14 @@
     2.4          }
     2.5      }
     2.6      
     2.7 +    public @Test void computedListIsOfTypeString() {
     2.8 +        Person p = new Person("1st", "2nd", Sex.MALE);
     2.9 +        String first = p.getBothNames().get(0);
    2.10 +        String last = p.getBothNames().get(1);
    2.11 +        assertEquals(first, "1st");
    2.12 +        assertEquals(last, "2nd");
    2.13 +    }
    2.14 +    
    2.15      private static class MockTechnology implements Technology<Object> {
    2.16          private final List<String> mutated = new ArrayList<String>();
    2.17  
     3.1 --- a/json/src/test/java/net/java/html/json/PersonImpl.java	Tue Feb 11 21:20:04 2014 +0100
     3.2 +++ b/json/src/test/java/net/java/html/json/PersonImpl.java	Tue Feb 11 22:10:22 2014 +0100
     3.3 @@ -42,6 +42,9 @@
     3.4   */
     3.5  package net.java.html.json;
     3.6  
     3.7 +import java.util.Arrays;
     3.8 +import java.util.List;
     3.9 +
    3.10  /**
    3.11   *
    3.12   * @author Jaroslav Tulach <jtulach@netbeans.org>
    3.13 @@ -58,6 +61,11 @@
    3.14      }
    3.15      
    3.16      @ComputedProperty
    3.17 +    public static List<String> bothNames(String firstName, String lastName) {
    3.18 +        return Arrays.asList(firstName, lastName);
    3.19 +    }
    3.20 +    
    3.21 +    @ComputedProperty
    3.22      public static String sexType(Sex sex) {
    3.23          return sex == null ? "unknown" : sex.toString();
    3.24      }