com.android.tools.lint.checks
Class RegistrationDetector

java.lang.Object
  extended by com.android.tools.lint.detector.api.Detector
      extended by com.android.tools.lint.detector.api.ResourceXmlDetector
          extended by com.android.tools.lint.detector.api.LayoutDetector
              extended by com.android.tools.lint.checks.RegistrationDetector
All Implemented Interfaces:
com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.XmlScanner

public class RegistrationDetector
extends com.android.tools.lint.detector.api.LayoutDetector
implements com.android.tools.lint.detector.api.Detector.ClassScanner

Checks for missing manifest registrations for activities, services etc and also makes sure that they are registered with the correct tag

TODO: Rewrite as Java visitor!


Nested Class Summary
 
Nested classes/interfaces inherited from class com.android.tools.lint.detector.api.Detector
com.android.tools.lint.detector.api.Detector.BinaryResourceScanner, com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.GradleScanner, com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.OtherFileScanner, com.android.tools.lint.detector.api.Detector.ResourceFolderScanner, com.android.tools.lint.detector.api.Detector.XmlScanner
 
Field Summary
static com.android.tools.lint.detector.api.Issue ISSUE
          Unregistered activities and services
protected  com.google.common.collect.Multimap<java.lang.String,java.lang.String> mManifestRegistrations
           
 
Fields inherited from interface com.android.tools.lint.detector.api.Detector.XmlScanner
ALL
 
Constructor Summary
RegistrationDetector()
          Constructs a new RegistrationDetector
 
Method Summary
 void checkClass(com.android.tools.lint.detector.api.ClassContext context, org.objectweb.asm.tree.ClassNode classNode)
           
protected static java.lang.String classToTag(java.lang.String className)
          Looks up the tag a given framework class should be registered with
 java.util.Collection<java.lang.String> getApplicableElements()
           
 com.android.tools.lint.detector.api.Speed getSpeed()
           
 void visitElement(com.android.tools.lint.detector.api.XmlContext context, org.w3c.dom.Element element)
           
 
Methods inherited from class com.android.tools.lint.detector.api.LayoutDetector
appliesTo, hasPadding, isHeightFillParent, isWidthFillParent
 
Methods inherited from class com.android.tools.lint.detector.api.ResourceXmlDetector
appliesTo, run
 
Methods inherited from class com.android.tools.lint.detector.api.Detector
afterCheckFile, afterCheckLibraryProject, afterCheckProject, applicableSuperClasses, appliesToFolder, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, beforeCheckProject, checkBinaryResource, checkCall, checkClass, checkFolder, checkInstruction, createJavaVisitor, getApplicableAsmNodeTypes, getApplicableAttributes, getApplicableCallNames, getApplicableCallOwners, getApplicableConstructorTypes, getApplicableFiles, getApplicableMethodNames, getApplicableNodeTypes, getSpeed, visitAttribute, visitBuildScript, visitConstructor, visitDocument, visitElementAfter, visitMethod, visitResourceReference
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.android.tools.lint.detector.api.Detector.ClassScanner
checkCall, checkInstruction, getApplicableAsmNodeTypes, getApplicableCallNames, getApplicableCallOwners
 
Methods inherited from interface com.android.tools.lint.detector.api.Detector.XmlScanner
getApplicableAttributes, visitAttribute, visitDocument, visitElementAfter
 

Field Detail

ISSUE

public static final com.android.tools.lint.detector.api.Issue ISSUE
Unregistered activities and services


mManifestRegistrations

protected com.google.common.collect.Multimap<java.lang.String,java.lang.String> mManifestRegistrations
Constructor Detail

RegistrationDetector

public RegistrationDetector()
Constructs a new RegistrationDetector

Method Detail

getSpeed

@NonNull
public com.android.tools.lint.detector.api.Speed getSpeed()
Overrides:
getSpeed in class com.android.tools.lint.detector.api.Detector

getApplicableElements

public java.util.Collection<java.lang.String> getApplicableElements()
Specified by:
getApplicableElements in interface com.android.tools.lint.detector.api.Detector.XmlScanner
Overrides:
getApplicableElements in class com.android.tools.lint.detector.api.Detector

visitElement

public void visitElement(@NonNull
                         com.android.tools.lint.detector.api.XmlContext context,
                         @NonNull
                         org.w3c.dom.Element element)
Specified by:
visitElement in interface com.android.tools.lint.detector.api.Detector.XmlScanner
Overrides:
visitElement in class com.android.tools.lint.detector.api.Detector

checkClass

public void checkClass(@NonNull
                       com.android.tools.lint.detector.api.ClassContext context,
                       @NonNull
                       org.objectweb.asm.tree.ClassNode classNode)
Specified by:
checkClass in interface com.android.tools.lint.detector.api.Detector.ClassScanner
Overrides:
checkClass in class com.android.tools.lint.detector.api.Detector

classToTag

protected static java.lang.String classToTag(java.lang.String className)
Looks up the tag a given framework class should be registered with