Details
-
Suggestion
-
Resolution: Won't Fix
-
None
Description
Problem:
- We need some concrete classes in the API to perform the instrumentation. At the moment we have an InstrumentationSession interface but no way to get an instance of this!
- We need a way in the API to construct a MethodSignatureInfo (same problem as InstrumentationSession).
In order to update content of a database and store new instrumentation session a number of internal classes must be used, e.g.:
import com.atlassian.clover.context.ContextSet; import com.atlassian.clover.registry.Clover2Registry; import com.atlassian.clover.registry.FixedSourceRegion; import com.atlassian.clover.registry.entities.MethodSignature; import com.atlassian.clover.registry.entities.Modifier; import com.atlassian.clover.registry.entities.Modifiers; import com.atlassian.clover.registry.entities.Parameter; // ... registry = Clover2Registry.createOrLoad(dbFile, projectName); session = registry.startInstr(encoding) // ... session.enterMethod(new ContextSet(), new FixedSourceRegion(12, 1), methodSignature, false, false, 5, LanguageConstruct.Builtin.METHOD);
Fix:
- move MethodSignature, Modifier, Modifiers, Parameter to API
- create factory for FixedSourceRegion, ContextSet
- enterMethod (and others) shall use ContextSet from API