private void annotateMetatadataValidator(JDefinedClass clazz) { if (clazz.name().equals("PodTemplateSpec")) { return; } for (Map.Entry<String, JFieldVar> f : clazz.fields().entrySet()) { if (f.getKey().equals("metadata") && f.getValue().type().name().equals("ObjectMeta")) { try { JAnnotationUse annotation = f.getValue().annotate(new JCodeModel()._class("io.fabric8.kubernetes.api.model.validators.CheckObjectMeta")); if (isMinimal(clazz)) { annotation.param("minimal", true); } else { annotation .param("regexp", "^" + getObjectNamePattern(clazz) + "$") .param("max", getObjectNameMaxLength(clazz)); } } catch (JClassAlreadyExistsException e) { e.printStackTrace(); } return; } } }
public JDefinedClass generate(RouteClass routeClass) { JDefinedClass definedClass; try { definedClass = codeModel._class(packagePrefix + "." + routeClass.getKlazz().getSimpleName()); } catch (JClassAlreadyExistsException e) { System.out.println("Class " + routeClass.getKlazz().getSimpleName() + " already exists"); e.printStackTrace(); return null; } for (Route route : routeClass.getRoutes()) { JMethod method = definedClass.method(JMod.PUBLIC, PathMethod.class, route.getMethod().getName()); String path = route.getPath(); for (Map.Entry<PathParam, Class<?>> entry : route.getPathParams().entrySet()) { String fieldName = entry.getKey().value(); method.param(entry.getValue(), fieldName); path = path.replaceAll("\\{" + fieldName + "(:?[^}]*)\\}", "\"+com.google.common.net.UrlEscapers.urlPathSegmentEscaper().escape(" + fieldName + ")+\""); } JBlock block = method.body(); block.directStatement("return new PathMethod(\"" + route.getHttpMethod() + "\", \"" + path + "\");"); } return definedClass; } }
router = codeModel._class(packagePrefix + ".routes"); } catch (JClassAlreadyExistsException e) { e.printStackTrace(); System.exit(-1); radioRouter = codeModel._class(packagePrefix + ".Radio"); } catch (JClassAlreadyExistsException e) { e.printStackTrace(); System.exit(-1);