def __str__(self):
     from java_source_parser.full_classifiers_names import get_name_value
     if self.classifier:
         return ('error: type name {type} used in {classifier} not '
                 'found'.format(type='"%s"' %
                                get_name_value(self.declaration.name),
                                classifier='"%s"' % self.classifier.name))
     return 'error: type name {type} not found'.format(
         type='"%s"' % get_name_value(self.declaration.name))
 def __str__(self):
     from java_source_parser.full_classifiers_names import get_name_value
     if self.classifier:
         return ('error: type name {type} used in {classifier} is '
                 'ambiguous, candidates are:\n{candidates}').format(
                     type='"%s"' % get_name_value(self.declaration.name),
                     classifier='"%s"' % self.classifier.name,
                     candidates=self.__format_candidates())
     return ('error: type name {type} is ambiguous, candidates are:\n'
             '{candidates}'.format(type='"%s"' %
                                   get_name_value(self.declaration.name),
                                   candidates=self.__format_candidates()))
 def __replace_name_for_subclass(self, declaration):
     type_name = get_name_value(declaration.name)
     if self.__classifiers_chain:
         name = '$'.join((self.__classifiers_chain[-1], type_name))
         if name in self.visible_classifiers:
             set_declaration_name(declaration, name)
             return True
def get_type_name(declaration_type, add_dimensions=0):
    if isinstance(declaration_type, str):
        return declaration_type
    elif isinstance(declaration_type, PlyjType):
        return (get_name_value(declaration_type.name) +
                format_type_arguments(declaration_type.type_arguments) + '[]' *
                (declaration_type.dimensions + add_dimensions))
    else:
        raise PlyjDeclarationTypeError(declaration_type)
Ejemplo n.º 5
0
 def visit_Type(self, declaration):
     if not self.__in_method_body() and not self.__in_instance_creation():
         return
     type_name = get_name_value(declaration.name)
     if type_name not in self.types:
         return
     client = self.__current_classifier()
     supplier = self.types[type_name].classifier
     if supplier not in client.suppliers:
         client.suppliers.append(supplier)
 def __replace_name(self, declaration):
     type_name = get_name_value(declaration.name)
     classifiers_names = tuple(self.__find_classifiers_names(type_name))
     if not classifiers_names:
         self.__add_error_type_not_found(declaration)
     elif len(classifiers_names) > 1:
         self.__add_error_ambiguous_type_name(declaration,
                                              classifiers_names)
     else:
         set_declaration_name(declaration, classifiers_names[0])
def generate_subpaths(import_name):
    import_path = get_name_value(import_name).split('.')
    import_path_len = len(import_path)
    for begin in range(import_path_len + 1):
        subimport = import_path[begin:]
        for border in range(import_path_len - begin):
            subpackages = '/'.join(subimport[:border])
            subclasses = '$'.join(subimport[border:])
            yield (join(subpackages, subclasses)
                   if subpackages and subclasses else subpackages + subclasses)
 def visit_ImportDeclaration(self, declaration):
     name = get_name_value(declaration.name)
     self.__imports.add(name)
     self.__add_visible_from(name)
     return True
 def visit_PackageDeclaration(self, declaration):
     self.__package = get_name_value(declaration.name)
     self.__add_visible_from(self.__package)
     return True
 def __visit_classifier(self, declaration):
     classifier = self.classifiers[get_name_value(declaration.name)]
     self.found_classifiers[classifier.name] = classifier
     return True
 def __visit_classifier(self, declaration):
     name = get_name_value(declaration.name)
     self.__classifiers_chain.append(name)
     return True
 def visit_ImportDeclaration(self, declaration):
     self.__add_import(get_name_value(declaration.name))
def get_classifier_name(declaration_type):
    if isinstance(declaration_type, PlyjType):
        return get_name_value(declaration_type.name)
    else:
        return get_type_name(declaration_type)