Package org.mvel2.util

Examples of org.mvel2.util.StringAppender


        this.injector = injector;
        this.type = type;
    }

    public String doTask(InjectionContext ctx) {
        StringAppender appender = new StringAppender();
        InjectionPoint injectionPoint
                = new InjectionPoint(null, injectType, constructor, method, field, type, parm, injector, ctx);
        switch (injectType) {
            case PrivateField:
                appender.append(InjectUtil.getPrivateFieldInjectorName(field)).append("(")
                        .append(injector.getVarName()).append(", ")
                        .append(ctx.getInjector(field.getType().isClassOrInterface()).getType(ctx, injectionPoint))
                        .append(");\n");

                ctx.getPrivateFieldsToExpose().add(field);
                break;

            case Field:
                appender.append(injector.getVarName()).append('.').append(field.getName()).append(" = ")
                        .append(ctx.getInjector(field.getType().isClassOrInterface()).getType(ctx, injectionPoint))
                        .append(";\n");
                break;

            case Method:
                appender.append(injector.getVarName()).append('.')
                        .append(method.getName()).append('(');

                String[] vars = InjectUtil.resolveInjectionDependencies(method.getParameters(), ctx, injectionPoint);

                appender.append(InjectUtil.commaDelimitedList(vars)).append(");\n");
                break;
        }

        return appender.toString();
    }
View Full Code Here


            return new ConstructionStrategy() {
                public String generateConstructor() {
                    String[] vars = resolveInjectionDependencies(constructor.getParameters(), ctx, constructor);

                    StringAppender appender = new StringAppender("final ").append(type.getQualifiedSourceName())
                            .append(' ').append(injector.getVarName()).append(" = new ")
                            .append(type.getQualifiedSourceName())
                            .append('(').append(commaDelimitedList(vars)).append(");\n");

                    handleInjectionTasks(appender, ctx, injectionTasks);

                    doPostConstruct(appender, injector, postConstructTasks);

                    return appender.toString();
                }
            };

        } else {
            // field injection
            if (!hasDefaultConstructor(type))
                throw new InjectionFailure("there is no default constructor for type: " + type.getQualifiedSourceName());

            return new ConstructionStrategy() {
                public String generateConstructor() {
                    StringAppender appender = new StringAppender("final ").append(type.getQualifiedSourceName())
                            .append(' ').append(injector.getVarName()).append(" = new ")
                            .append(type.getQualifiedSourceName()).append("();\n");

                    handleInjectionTasks(appender, ctx, injectionTasks);

                    doPostConstruct(appender, injector, postConstructTasks);

                    return appender.toString();
                }
            };
        }
    }
View Full Code Here

        return varNames;
    }

    public static String commaDelimitedList(String[] parts) {
        StringAppender appender = new StringAppender();
        for (int i = 0; i < parts.length; i++) {
            appender.append(parts[i]);
            if ((i + 1) < parts.length) appender.append(", ");
        }
        return appender.toString();
    }
View Full Code Here

  }

  private int readInRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
    BufferedReader reader = request.getReader();
    if (!reader.ready()) return 0;
    StringAppender sb = new StringAppender(request.getContentLength());
    CharBuffer buffer = CharBuffer.allocate(10);
    int read;
    while ((read = reader.read(buffer)) > 0) {
      buffer.rewind();
      for (; read > 0; read--) {
        sb.append(buffer.get());
      }
      buffer.rewind();
    }

    Message msg = createCommandMessage(sessionProvider.getSession(request.getSession(),
        request.getHeader(REMOTE_QUEUE_ID_HEADER)), request, sb.toString());
    if (msg != null) {
      try {
        service.store(msg);
      }
      catch (Exception e) {
View Full Code Here

                  new DefaultMutableTreeNode("Callpoints (" + endpoints.size() + ")");

          for (String endpoint : endpoints) {
            String[] epParts = endpoint.split(":");

            StringAppender appender = new StringAppender(epParts[0]).append('(');
            for (int i = 1; i < epParts.length; i++) {
              appender.append(epParts[i]);
              if ((i + 1) < epParts.length) appender.append(", ");
            }

            remoteCPs.add(UiHelper.createIconEntry("database_connect.png", appender.append(')').toString()));
          }

          node.add(remoteCPs);
        }
      }
View Full Code Here

            return write(ctx, "{\"" + SerializationParts.ENCODED_TYPE + "\":\"" + cls.getCanonicalName() + "\",\"" + SerializationParts.OBJECT_ID + "\":\"$" + ctx.markRef(o) + "\"}");
        }

        ctx.markEncoded(o);

        StringAppender build = new StringAppender(write(ctx, "{\"" + SerializationParts.ENCODED_TYPE + "\":\"" + cls.getName() + "\",\"" + SerializationParts.OBJECT_ID + "\":\"" + String.valueOf(o.hashCode()) + "\","));

        // Preliminary fix for https://jira.jboss.org/browse/ERRAI-103
        // TODO: Review my Mike
        final Field[] fields = EncodingUtil.getAllEncodingFields(cls);
        final Serializable[] s = EncodingCache.get(fields, new EncodingCache.ValueProvider<Serializable[]>() {
            public Serializable[] get() {
                Serializable[] s = new Serializable[fields.length];
                int i = 0;
                for (Field f : fields) {
                    if ((f.getModifiers() & (Modifier.TRANSIENT | Modifier.STATIC)) != 0
                            || f.isSynthetic()) {
                        continue;
                    }
                    s[i++] = MVEL.compileExpression(f.getName());
                }
                return s;
            }
        });

        int i = 0;
        boolean first = true;
        for (Field field : fields) {

            if ((field.getModifiers() & (Modifier.TRANSIENT | Modifier.STATIC)) != 0
                    || field.isSynthetic()) {
                continue;
            } else if (!first) {
                build.append(',');
            }

            try {
                Object v = MVEL.executeExpression(s[i++], o);
                build.append(write(ctx, '\"')).append(field.getName()).append(write(ctx, '\"')).append(':').append(_encode(v, ctx));
                first = false;
            }
            catch (Throwable t) {
                System.out.println("failed at encoding: " + field.getName());
                t.printStackTrace();
            }
        }

        return build.append('}').toString();
    }
View Full Code Here

        return build.append('}').toString();
    }

    private static String encodeMap(Map<Object, Object> map, EncodingContext ctx) {
        StringAppender mapBuild = new StringAppender("{");
        boolean first = true;

        for (Map.Entry<Object, Object> entry : map.entrySet()) {
            String val = _encode(entry.getValue(), ctx);
            if (!first) {
                mapBuild.append(',');
            }

            if (!(entry.getKey() instanceof String)) {
                mapBuild.append(write(ctx, '\"'));
                if (!ctx.isEscapeMode()) {
                    mapBuild.append(SerializationParts.EMBEDDED_JSON);
                }
                ctx.setEscapeMode();
                mapBuild.append(_encode(entry.getKey(), ctx));
                ctx.unsetEscapeMode();
                mapBuild.append(write(ctx, '\"'));
                mapBuild.append(":")
                        .append(val);

            } else {
                mapBuild.append(_encode(entry.getKey(), ctx))
                        .append(':').append(val);
            }

            first = false;
        }

        return mapBuild.append('}').toString();
    }
View Full Code Here

        return mapBuild.append('}').toString();
    }

    private static String encodeCollection(Collection col, EncodingContext ctx) {
        StringAppender buildCol = new StringAppender("[");
        Iterator iter = col.iterator();
        while (iter.hasNext()) {
            buildCol.append(_encode(iter.next(), ctx));
            if (iter.hasNext()) buildCol.append(',');
        }
        return buildCol.append(']').toString();
    }
View Full Code Here

        }
        return buildCol.append(']').toString();
    }

    private static String encodeArray(Object array, EncodingContext ctx) {
        StringAppender buildCol = new StringAppender("[");

        int len = Array.getLength(array);
        for (int i = 0; i < len; i++) {
            buildCol.append(_encode(Array.get(array, i), ctx));
            if ((i + 1) < len) buildCol.append(',');
        }

        return buildCol.append(']').toString();
    }
View Full Code Here

        }
    }

    private Object _parse(Context ctx, Object collection, boolean map) throws IOException {
        char c;
        StringAppender appender;
        while ((c = read()) != 0) {
            switch (c) {
                case '[':
                    ctx.addValue(_parse(new Context(), new ArrayList(), false));
                    break;

                case '{':
                    ctx.addValue(_parse(new Context(), new UHashMap(), true));
                    break;

                case ']':
                case '}':
                    if (map && ctx.encodedType) {
                        ctx.encodedType = false;
                        try {
                            return demarshallAll(ctx.record(collection, decodingContext), decodingContext);
                        }
                        catch (Exception e) {
                            throw new RuntimeException("Could not demarshall object", e);
                        }
                    } else {
                        return ctx.record(collection, decodingContext);
                    }

                case ',':
                    ctx.record(collection, decodingContext);
                    break;

                case '"':
                case '\'':
                    char term = c;
                    appender = new StringAppender();
                    StrCapture:
                    while ((c = read()) != 0) {
                        switch (c) {
                            case '\\':
                                appender.append(handleEscapeSequence());
                                break;
                            case '"':
                            case '\'':
                                if (c == term) {
                                    ctx.addValue(appender.toString());
                                    term = 0;
                                    break StrCapture;
                                }
                                break;
                            default:
                                appender.append(c);
                        }
                    }

                    if (term != 0) {
                        throw new RuntimeException("unterminated string literal");
                    }

                    break;

                case ':':
                    continue;

                default:
                    if (isValidNumberPart(c)) {
                        ctx.addValue(parseNumber(c));
                        break;
                    } else if (Character.isJavaIdentifierPart(c)) {
                        appender = new StringAppender().append(c);

                        while (((c = read()) != 0) && Character.isJavaIdentifierPart(c)) {
                            appender.append(c);
                        }

                        String s = appender.toString();

                        if (s.length() > 4) ctx.addValue(s);
                        else if ("null".equals(s)) {
                            ctx.addValue(null);
                        } else if ("true".equals(s)) {
View Full Code Here

TOP

Related Classes of org.mvel2.util.StringAppender

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.