コード例 #1
0
ファイル: git_extractor.py プロジェクト: andrefreitas/schwa
 def parse(path, source):
     try:
         if "java" in path:
             components = JavaParser.parse(source)
             return components
     except ParsingError:
         pass
     return False
コード例 #2
0
 def parse(path, source):
     try:
         if "java" in path:
             components = JavaParser.parse(source)
             return components
     except ParsingError:
         pass
     return False
コード例 #3
0
 def test_abstract_class(self):
     code = """public abstract class GraphicObject {
        // declare fields
        // declare nonabstract methods
        abstract void draw();
     }"""
     components = JavaParser.parse(code).classes
     classes_repr = [repr(c) for c in components]
     self.assertTrue('GraphicObject<1,5>' in classes_repr)
     methods_repr = [repr(m) for m in components[0].methods]
     self.assertTrue('draw<4,4>' in methods_repr)
コード例 #4
0
    def test_empty_methods(self):
        code = """private class SOAPAPI{
                private void login(String name)
                {

                }
                private void login2(String name){

                }}"""

        components = JavaParser.parse(code).classes
        classes_repr = [repr(c) for c in components]
        self.assertTrue('SOAPAPI<1,8>' in classes_repr)
        methods_repr = [repr(m) for m in components[0].methods]
        self.assertTrue('login<2,5>' in methods_repr)
        self.assertTrue('login2<6,8>' in methods_repr)
コード例 #5
0
    def test_parse(self):
        components = JavaParser.parse(self.code).classes

        classes_repr = [repr(c) for c in components]
        self.assertTrue('API<8,53>' in classes_repr)
        self.assertTrue('SOAPAPI<55,59>' in classes_repr)

        methods_repr = [repr(m) for m in components[0].methods]
        self.assertTrue('getUrl<9,11>' in methods_repr)
        self.assertTrue('API<21,23>' in methods_repr)
        self.assertTrue('API<25,27>' in methods_repr)
        self.assertTrue('login<30,35>' in methods_repr)
        self.assertTrue('register<37,47>' in methods_repr)
        self.assertTrue('getShows<49,51>' in methods_repr)

        methods_repr = [repr(m) for m in components[1].methods]
        self.assertTrue('login<56,58>' in methods_repr)
コード例 #6
0
    def test_compressed_code(self):
        code = """public class ShadowTest{public int x=0;class FirstLevel{public int x=1;void methodInFirstLevel""" \
            + """(int x){System.out.println("x = "+x);System.out.println("this.x = "+this.x);""" \
            + """System.out.println("ShadowTest.this.x = "+ShadowTest.this.x);}}public static void main(String...""" \
            + """args){ShadowTest st=new ShadowTest();ShadowTest.FirstLevel fl=st.new FirstLevel();""" \
            + "fl.methodInFirstLevel(23);}}"""
        components = JavaParser.parse(code).classes

        classes_repr = [repr(c) for c in components]
        self.assertTrue('ShadowTest<1,1>' in classes_repr)
        methods_repr = [repr(m) for m in components[0].methods]
        self.assertTrue('main<1,1>' in methods_repr)

        classes_repr = [repr(c) for c in components[0].classes]
        self.assertTrue('FirstLevel<1,1>' in classes_repr)
        methods_repr = [repr(m) for m in components[0].classes[0].methods]
        self.assertTrue('methodInFirstLevel<1,1>' in methods_repr)
コード例 #7
0
    def test_parse_nested_classes(self):
        code = """public class ShadowTest {

            public int x = 0;

            class FirstLevel {

                public int x = 1;

                void methodInFirstLevel(int x) {
                    System.out.println("x = " + x);
                    System.out.println("this.x = " + this.x);
                    System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);
                }
            }

            public static void main(String... args) {
                ShadowTest st = new ShadowTest();
                ShadowTest.FirstLevel fl = st.new FirstLevel();
                fl.methodInFirstLevel(23);
            }
        }"""

        components = JavaParser.parse(code).classes

        classes_repr = [repr(c) for c in components]
        self.assertTrue('ShadowTest<1,21>' in classes_repr)
        self.assertEqual(len(classes_repr), 1)
        methods_repr = [repr(m) for m in components[0].methods]
        self.assertTrue('main<16,20>' in methods_repr)
        self.assertEqual(len(methods_repr), 1)

        classes_repr = [repr(c) for c in components[0].classes]
        self.assertTrue('FirstLevel<5,14>' in classes_repr)
        self.assertEqual(len(classes_repr), 1)
        methods_repr = [repr(m) for m in components[0].classes[0].methods]
        self.assertTrue('methodInFirstLevel<9,13>' in methods_repr)
        self.assertEqual(len(methods_repr), 1)
コード例 #8
0
    def test_parse_with_anonymous_classes(self):
        code = """import javafx.event.ActionEvent;
                import javafx.event.EventHandler;
                import javafx.scene.Scene;
                import javafx.scene.control.Button;
                import javafx.scene.layout.StackPane;
                import javafx.stage.Stage;

                public class HelloWorld extends Application {
                    public static void main(String[] args) {
                        launch(args);
                    }

                    @Override
                    public void start(Stage primaryStage) {
                        primaryStage.setTitle("Hello World!");
                        Button btn = new Button();
                        btn.setText("Say 'Hello World'");
                        btn.setOnAction(new EventHandler<ActionEvent>() {

                            @Override
                            public void handle(ActionEvent event) {
                                System.out.println("Hello World!");
                            }
                        });

                        StackPane root = new StackPane();
                        root.getChildren().add(btn);
                        primaryStage.setScene(new Scene(root, 300, 250));
                        primaryStage.show();
                    }
                }"""
        components = JavaParser.parse(code).classes
        classes_repr = [repr(c) for c in components]
        self.assertTrue('HelloWorld<8,31>' in classes_repr)
        methods_repr = [repr(m) for m in components[0].methods]
        self.assertTrue('main<9,11>' in methods_repr)
        self.assertTrue('start<14,30>' in methods_repr)