Flex validation in Java

I am using a product called Crystal Xcelsius to design and
develop dashboards for banking customers. The product using Flex
controls with an Excel spreadsheet to show data. It then supports
data connections to refresh or update that data. After setting all
this up, it compiles it down to a Flash (SWF) file that can be
delivered to our client.
On the client's machine, the SWF file is loaded into a
database and then served up to the users as needed. Also loaded
into the database are the SQL queries which will be used to provide
the data needed to refresh the connections.
These SWF files and queries can be provided by us, but we
also let our clients use Xcelsius to create their own and then
upload them into our application. What I am looking for is a way to
validate the SWF file as part of the import process. Specifically,
since they are providing an SWF and a set of queries with
connection names and range names, I want to parse the SWF file and
make sure that the data connections in the SWF file match the
queries that they have provided with the SWF file. I want to make
sure that all connections in the SWF file have queries provided,
and that there are no queries that were provided which don't map to
connections in the SWF file.
I can take care of the mapping, the part I don't know about
is getting the list of connections specified in the SWF file. Since
the server that is importing these files is running Java, are there
any Java components or libraries I can use to look into a SWF file
and get the list of data connections in the file?
Any help, thoughts, or suggestions would be appreciated.
-Benjamin

James,
If you want client-side validation you must use vbscript or preferrable javascript.
To do client-side validation in your get or post method use java to validate the incoming paramters.
By the way if you move to a jsps/struts/jsf environment you'll get more help from the system in dealing with these kinds of problems. Developing sizable applications using only servlets will be very difficult.

Similar Messages

  • Integrating flex with webdynpro java

    hi,
    iam new bie in webdynpro java.please tell is there possibility of integrating flex in webdynpro java,if so what are the prerequisites for it.

    Hi
    This is possible through Adobe Flash Islands under Mimes folder in your Webdynpro project. You create flex objects in FlexBuilder and generate the .swf files. Then the swf files need to be placed under the Mimes folder of Webdynpro Project from which they can be accessed.
    Follow the link below for details :
    http://wiki.sdn.sap.com/wiki/display/WDJava/WebDynproJava(CE7.1EHP1)andAdobeFlexIntegration-ColumnChart
    http://help.sap.com/saphelp_nw72/helpdata/en/48/825afcf53d3ff6e10000000a42189c/content.htm
    Regards,
    Sayan Ghosh

  • How to write validation in java sript item should not allow more than 20 ch

    HI,
    I need to write validation in java script for a item it should not allow more than 20 characters.
    Thanks
    Nr

    If this answers your question, please mark your question as answered (so everyone knows it is answered) and assign points where you see fit..
    Thank you,
    Tony Miller
    Webster, TX

  • [svn:bz-trunk] 18053: BLZ-571: Use of wrong operator in string comparison in flex.messaging.VersionInfo. java

    Revision: 18053
    Revision: 18053
    Author:   [email protected]
    Date:     2010-10-07 03:27:37 -0700 (Thu, 07 Oct 2010)
    Log Message:
    BLZ-571: Use of wrong operator in string comparison in flex.messaging.VersionInfo.java
    Updated the code to use the right operator.
    Check-in Tests: PASS
    QA: Yes
    Ticket Links:
        http://bugs.adobe.com/jira/browse/BLZ-571
    Modified Paths:
        blazeds/trunk/modules/core/src/flex/messaging/VersionInfo.java

  • FLEX+CAIRNGORM+BLAZEDS+JAVA+DATABASE

    A very simple example for FLEX+CAIRNGORM+BLAZEDS+JAVA+DATABASE.
    http://vijaaay.limewebs.com/forum/viewthread.php?tid=26&extra=page%3D1
    or
    visit  www . flexindia . tk >> Flex Examples
    The attachment zip contains the source  files[ FLEX and JAVA ] and Readme.txt which helps you to setup this  example.
    Regards,
    Vijay

    Yeah i registered, but i couldn't find zip file. Could you please tell me where is that example
    Thanks,
    ApacheFlex.

  • DOM validation using Java is extremely slow

    I have a large XML file ~8MB. When I do validation on it using java api, takes ~5 hours to process it.
    I have narrowed down the problem to xs:unique rules in the schema file. When I remove these rules, validation takes ~1 min.
    I have tried using MSXML parser with unique rules and it take about 30 min.
    My question is how could I speed up the validation in Java with these unique rules in the schema.
    Any help will be greatly appreciated.
    Thanks.

    Basically, you are saying removing the unique elements
    from schema and do the checking myself. This means
    everytime the schema is updated with new unique rules,
    I will have to modify the code to check for unique
    elements.
    Is there any other way to tackle this problem?You can choose what processing is done with the XML parser, and what is done within java, if you control the schema. Uniqueness is one that I have preferred to perform in java, since I often perform other validations in java anyway, and it works well. Just my opinion.
    If you post some XML/XSD code and list the parser you are using, someone that uses xs:unique may find something they can help you with.
    -Scott

  • Range Validation in Java

    Hi,
    I am having a doubt in Range Validation
    I having the following as input, i will maintain a Default Values,
    StartId, EndId as Constant in my program
    Example :
    StartID= "0000000" Format will be "XXXXXXX"
    EndID = "0000100" Format will be "XXXXXXX"
    From the UI, i will have the option to enter a text. If the User has to enter the same Format "XXXXXXX", the format validation I performed using reg Expression,
    I need to perform the Range validation here, if the user Enters value say
    "0000700" < it is not within the StartId & EndId Range, then i need to say Error.
    How can i perform Range Validation in java.?
    Any Ideas please..

    It can be done with regexp but it's probably easier to parse the start and end ids and the entered value into integers and perform the validation using a normal if statement.

  • DB procedure validation versus JAVA method validation

    Hi ,
    We have an application that is developed with Oracle Forms as well as Java (ADF )
    Now since ADF is the newer application, it was told to reduce the development time but provide efficient code. Now with Forms each field validation called a procedure and returned an error.
    For example if Name is validated, They have a procedure VALIDATE_NAME proc. Why they have separated this is cause based on different customers and different products, the name validation differs. So the in parameters are Field val, Product, customertype... etc. Like this, there are 20 VALIDATE_FIELD procedures for respective fields.
    Now to reduce duplication, I can call each procedure on each field. but that would means 20 DB additional calls for each procedure. If I write this logic in java it means I increase development time and probably increase probability of error.
    Which is the best practice for VALIDATION.

    Hi,
    you already mentioned the pros and cons of the approaches. I don't think that it is good practice to directly call the PLSQL validation from Java as it means you wont be able to change it easily in the future. I would look for an abstraction layer that initially (for the time being) accesses the database for validation (maybe caching some validation policies upon application instance start) and later then can be changed to use pure Java validation rules. One thing coming to my mind would be something like a rules engine that reads the validation conditions from the database and that is accessed from Java. If your manager says you should reduce development time then my impression is that the choice is not yours and you will have to use the database (though it feels wrong).
    Frank

  • Validation of Java Version

    Hello,
    I'm building a program that before it runs the program need to verify the version of Java.
    If the version is less that version 1.4, the program won't start.
    How I make the validation of Java version ?
    tks

    Ok.
    But, this command return a value String.
    In general, the version is like 1.4.2_03.
    Then, How I compare whith others versions ?
    Example,
    My program will run only in the Java version bigger than 1.3.
    The command getProperty return the string 1.4.2_03.
    It's my problem ...
    Tks

  • Problem with XSD validation in Java 5

    Hi everyone,
    my application creates in memory schema using JDOM. In Java 6 validation runs fine, but in Java 5 (which is the target platform currently) it fails.
    I tried a second test with just parsing an existing XSD document (not created using JDOM) and that works.
    The textual representation of both (file and JDOM generated) are identical. If I replace the XSD file with the JDOM output, the "file test" runs fine, too.
    Here's the test code:
        protected void assertXsdValid(Source xsdSource, InputSource xmlInputSource) throws SAXException, ParserConfigurationException, IOException {
            isValid = true;
            SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            sf.setErrorHandler(myErrorHandler);
            Schema schema = sf.newSchema(xsdSource); // <<--------- THIS LINE FAILS IN JAVA 5
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            dbf.setNamespaceAware(true);
            dbf.setSchema(schema);
            DocumentBuilder db = dbf.newDocumentBuilder();
            db.setErrorHandler(myErrorHandler);
            db.parse(xmlInputSource);
            assertTrue(isValid);
        }This is the XSD:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://some.org/metamodel" elementFormDefault="qualified">
      <xs:element name="system">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="name" type="xs:string" />
            <xs:element name="vendor" type="xs:string" />
            <xs:element name="version" type="xs:decimal" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>This is the error message I get:
    ERROR: org.xml.sax.SAXParseException: s4s-att-invalid-value: Invalid attribute value for 'type' in element 'element'. Recorded reason: UndeclaredPrefix: Cannot resolve 'xs:string' as a QName: the prefix 'xs' is not declared.
    This is how I call the test code in the JDOM test:
            assertXsdValid(new JDOMSource(xsdDoc), new JDOMSource(xmlDoc).getInputSource());If I change the code to parsing not the JDOMSource, but a StreamSource reading the textual representation of the XSD, it works fine!
            assertXsdValid(new StreamSource(new ByteArrayInputStream(new XMLOutputter().outputString(xsdDoc).getBytes())), new JDOMSource(xmlDoc).getInputSource());But this is not what I want (I expect suboptimal performance with large XSD documents). So, if it works with Java 6, then why doesn't it work with Java 5?
    How can I use the Java 6 JAXP in Java 5?
    Thank you.

    A new user name?
    I can think of ways round your problem but can you first provide a reference that indicates that byte 0x80 is the MS936 encoding for the Euro?
    P.S. This is a forum and the vast majority of participants, including me, have no direct relationship with Oracle so getting definitive answers from Oracle via this forum is unlikely. If you think you have found a bug in 1.5 and/or 1.6, and I am not convinced you have, you need to report it via the bug database. If it is a bug then the response time for a fix is likely to be months rather than days.
    P.P.S No I can't explain why it works in 1.7!

  • Flex RPC mapping Java nested classes to ActionScript classes

    We are calling a Java method in our project using
    RemoteObject the value returned by the java method is a ArrayList
    containing instances of a class say ParentClass with some nested
    classes.
    The structure of ParentClass(Java) is something like this
    class ParentClass {
    //some primitives
    private ChildClassA childAInstance;
    private ChildClassB childBInstance;
    //getters setters
    We have created similar class structure on the ActionScript
    side, the ActionScript classes(ParentClass,ChildClassA
    ,ChildClassB) have been properly annotated with the [RemoteClass]
    metadata tag,
    The problem is that though i'm getting the primitive data
    members of the ParentClass through RPC in my corresponding AS
    ParentClass class i'm getting an runtime exception trying to access
    ChildClassA,ChildClassB members.
    Am i missing something, exactly the same scenario is
    mentioned in this article
    http://www.adobe.com/devnet/flex/articles/complex_data.html
    But the Object.registerClass method mentioned in the tutorial
    is giving me compilation error, the sample code attached with the
    article is corrupt zip too.
    Please help me out on this

    JAXB will create classes from an XML schema, SAX is a parser library and JAXP is a library of XML a bunch of XML tools.
    I don't care for JAXB too much. I would skip it and go right to the JAX-RPC spec (WebServices).

  • Xml vs schema validation by java multimapping: ParserException

    Hello guys,
    I was looking for an answer everywhere, but with no succes.
    Problem:
    I am using SAP NetWeaver BI 7.0
    My interface mapping looks like this:
    1 XML INPUT ---> JAVA MAPPING ---> n XML OUTPUTS
    O found out, tha by setting occurence to "0..onbounded", causes, that also input is comming as "0..onbounded" xml. That I don't understant, but OK, can live with that. In runtime it looks that on the output, my xml root element is wrapped to this structure:
    <b>Messages
    |__Message1
        |__SDS_XSD_ZPPM_POB</b>
    What is frustrated problem for me, that I need to validate on the output in my Java Mapping the xml document against the schema but I always get this error:
    <i>Fatal Error: com.sap.engine.lib.xml.parser.ParserException:
    ERRORS :
    cvc-element : element information item '/:Messages[1]' is not associated with element declaration and do not has an attribute information item among the element information item's [attributes] whose [namespace name] is identical to http://www.w3.org/2001/XMLSchema-instance and whose [local name] is type.</i>
    This is the begin of the xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <Messages xmlns="http://xxx.sk/is_xx">
       <Message1>
          <SDS_XSD_ZPPM_POB>
    This is the begin of the schema definition:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema targetNamespace="http://sap.com/xi/XI/SplitAndMerge" xmlns:p0="http://xxx.sk/is_xx"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://sap.com/xi/XI/SplitAndMerge">
       <xsd:element name="Messages" xmlns:p0="http://xxx.sk/is_xx">
          <xsd:complexType>
             <xsd:sequence>
                <xsd:element name="Message1" form="qualified">
                   <xsd:complexType>
                      <xsd:sequence>
                         <xsd:element ref="SDS_XSD_ZPPM_POB" minOccurs="0" maxOccurs="unbounded"
                            xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
                      </xsd:sequence>
                   </xsd:complexType>
                </xsd:element>
             </xsd:sequence>
          </xsd:complexType>
       </xsd:element>
    Without validation everything works perfect.
    CAN ANYBODY HELP WITH SOME CLUE?
    Thanks a lot
    Rasto
    Message was edited by:
            Peter Guzik

    No I didn't.
    Here is the result of my fixes:
    <b>XML:</b>
    <?xml version="1.0" encoding="UTF-8"?>
    <Messages xmlns="http://sap.com/xi/XI/SplitAndMerge">
       <Message1>
          <SDS_XSD_ZPPM_POB>
             <pob>010</pob>
    <b>XSD:</b>
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema targetNamespace="http://sap.com/xi/XI/SplitAndMerge" xmlns:p0="http://xxx.sk/is_sds"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://sap.com/xi/XI/SplitAndMerge">
       <xsd:element name="Messages">
          <xsd:complexType>
             <xsd:sequence>
                <xsd:element name="Message1" form="qualified">
                   <xsd:complexType>
                      <xsd:sequence>
                         <xsd:element ref="SDS_XSD_ZPPM_POB" minOccurs="0" maxOccurs="unbounded"
                            xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
                      </xsd:sequence>
    <b>RESULT EXCEPTION:</b>
    Fatal Error: com.sap.engine.lib.xml.parser.ParserException:
    ERRORS :
    cvc-element : element information item '/:Messages[1]/:Message1[1]/:SDS_XSD_ZPPM_POB[1]/:pob[1]' is not associated with element declaration and do not has an attribute information item among the element information item's [attributes] whose [namespace name] is identical to http://www.w3.org/2001/XMLSchema-instance and whose [local name] is type.
    cvc-element : element information item '/:Messages[1]/:Message1[1]/:SDS_XSD_ZPPM_POB[1]' is not valid with respect to it's complex type definition..
    cvc-element : element information item '/:Messages[1]/:Message1[1]' is not valid with respect to it's complex type definition..
    cvc-element : element information item '/:Messages[1]' is not valid with respect to it's complex type definition..
    If there is an error in xml, according this message it is impossible to find it..

  • Have a problem using flex ui with Java application

    Hi, I have a built a Flex UI for a java project. The UI has
    some forms which use a servlet for POST and data populated from
    servlet. I have used HTTP service to make the calls. I have built
    my application i.e UI in Flex Builder and when I run my application
    from flex builder everything works fine i.e data populated
    correctly..
    But when I open the projects folder and run the html file
    generated the Http Service does not happen. Can anybody tell me why
    is this so?? . Moreover I want use this UI for my already existing
    java project. So what all files (i,e. html, mxml, swf) will be
    required to be copied to my java project for the UI to work ..
    .Thanks in advance...

    well, that's because Flex Builder is tell Flash player to
    trust stuff in the bin folder:
    http://viconflex.blogspot.com/2008/08/why-no-sandbox-violation-running-from.html
    ATTA

  • Flex 4.5 - java.lang.IllegalArgumentException: argument type mismatch

    0 down vote favorite
    I am having a problem when sending a soap request from a flex  4.5 application to a coldfusion 9 web service created using a CFC.
    The  most annoying thing it is only an intermittent problem but I can't work  out what is wrong.
    There a many methods within the web service of which Flex has no  issue, but these are mainly ones that read data.  The one I am having a  problem with is one that is writing back to the web service.
    The issue only arises when I have to restart the Coldfusion service  for some reason, which is quite often as the development machine is my  laptop.  It has now also happened when I have moved the Flex app to a  development server for testing and as it's hosted I can't restart the  services easily.
    I get the response below every time.  I have tried tracing the call  through the Flash Builder Network monitor and building a dummy call  using the same data, all to no avail.
    I have tried stripping out all of the code and then rebuilding it,  which takes a long time as I am using custom types in ColdFusion.
    Also , if I cfinvoke the method through a CFM page, it works fine. It  is only when trying to call it through a SOAP request through Flex 4.5.
    It will then suddenly start working again however and then it is fine  until I restart the CF services again.
    I can't tell what I triggers it  to start working again.
    Does something initialise it in ColdFusion and then it's fine ???.  I am  really struggling with this and any help would be appreciated.
    I have a  sample SOAP request that I trapped in the Network Monitor and also the  WSDL if needed.
    java.lang.IllegalArgumentException: argument type mismatch
        <ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/"
        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.axis.utils.BeanPropertyDescriptor.set(BeanPropertyDescriptor.java:142)
    at org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:75)
    at org.apache.axis.encoding.DeserializerImpl.valueComplete(DeserializerImpl.java:249)
    at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:509)
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:171)
    at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
    at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
    at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:148)
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
    at coldfusion.xml.rpc.CFCProvider.invoke(CFCProvider.java:54)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
    at coldfusion.xml.rpc.CFCServlet.doAxisPost(CFCServlet.java:270)
    at coldfusion.filter.AxisFilter.invoke(AxisFilter.java:43)
    at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:356)
    at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
    at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:87)
    at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27)
    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
    at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at coldfusion.xml.rpc.CFCServlet.invoke(CFCServlet.java:138)
    at coldfusion.xml.rpc.CFCServlet.doPost(CFCServlet.java:289)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
    at jrun.servlet.FilterChain.service(FilterChain.java:101)
    at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
    at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
    at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
    at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
    at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)</ns1:stackTrace>
    <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/" xmlns:soapenv
    ="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org2001/XMLSchema-instance">Darren-LT</ns2:hostname>

    Someone suggested it could be a serialisation issue but I I'm not sure how to go about checking that.
    Any suggestions ?

  • Flex 3 and Java - Integrated Development on Eclipse

    I am new to flex as well as to eclipse. I have downloaded
    Adobe Flex Builder 3.0 and installed it. I want to use java at the
    back-end, but I don't have Java perspective option in eclipse.
    Therefore, I am currently using 2 IDE(s), one is
    flex-builder, and other is Eclipse for Web tool platform
    (eclipse-jee-europa-winter-win32.zip).
    Is there anyway that I can benefit integrated development of
    Flex and java using same IDE?

    I wouldn't try it really... it's not worth the issues you'd
    probably run into and the work of getting it setup, if it's even
    possible. I just run Eclipse and FB separate. If you have a gig of
    ram you should be fine doing this I think.
    If you *really* want to get rid of one, you can use the Flex
    plugin for Eclipse, but I've heard people complain about it not
    playing nice with Java.

Maybe you are looking for