# HG changeset patch # User Jaroslav Tulach # Date 1364729187 -7200 # Node ID fdf8406908612a5ca02ba417b131980437fc39c6 # Parent 52cb50cea1df210aa4272cd3675eeaa296343e25 Allow enums as model properties diff -r 52cb50cea1df -r fdf840690861 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Sun Mar 31 12:26:07 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Sun Mar 31 13:26:27 2013 +0200 @@ -535,6 +535,7 @@ private String typeName(Element where, Property p) { String ret; boolean isModel = false; + boolean isEnum = false; try { ret = p.type().getName(); } catch (MirroredTypeException ex) { @@ -548,6 +549,9 @@ } else { ret = tm.toString(); } + TypeMirror enm = processingEnv.getElementUtils().getTypeElement("java.lang.Enum").asType(); + enm = processingEnv.getTypeUtils().erasure(enm); + isEnum = processingEnv.getTypeUtils().isSubtype(tm, enm); } if (p.array()) { String bt = findBoxedType(ret); @@ -555,7 +559,7 @@ return bt; } } - if (!isModel && !"java.lang.String".equals(ret)) { + if (!isModel && !"java.lang.String".equals(ret) && !isEnum) { String bt = findBoxedType(ret); if (bt == null) { processingEnv.getMessager().printMessage( diff -r 52cb50cea1df -r fdf840690861 javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/PersonImpl.java --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/PersonImpl.java Sun Mar 31 12:26:07 2013 +0200 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/PersonImpl.java Sun Mar 31 13:26:27 2013 +0200 @@ -28,7 +28,7 @@ @Model(className = "Person", properties = { @Property(name = "firstName", type = String.class), @Property(name = "lastName", type = String.class), - @Property(name = "male", type = boolean.class) + @Property(name = "sex", type = Sex.class) }) final class PersonImpl { @ComputedProperty @@ -37,7 +37,7 @@ } @ComputedProperty - public static String sex(boolean male) { - return male ? "Male" : "Female"; + public static String sexType(Sex sex) { + return sex == null ? "unknown" : sex.toString(); } } diff -r 52cb50cea1df -r fdf840690861 javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/Sex.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/Sex.java Sun Mar 31 13:26:27 2013 +0200 @@ -0,0 +1,26 @@ +/** + * Back 2 Browser Bytecode Translator + * Copyright (C) 2012 Jaroslav Tulach + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. Look for COPYING file in the top folder. + * If not, see http://opensource.org/licenses/GPL-2.0. + */ +package org.apidesign.bck2brwsr.htmlpage; + +/** + * + * @author Jaroslav Tulach + */ +public enum Sex { + MALE, FEMALE; +}