public Document convert( LuceneRepositoryContentRecord record ) { if ( !( record instanceof BytecodeRecord ) ) { throw new ClassCastException( "Unable to convert type " + record.getClass().getName() + " to " + BytecodeRecord.class.getName() + "." ); } BytecodeRecord bytecode = (BytecodeRecord) record; LuceneDocumentMaker doc = new LuceneDocumentMaker( bytecode ); // Artifact Reference doc.addFieldTokenized( ArtifactKeys.GROUPID, bytecode.getArtifact().getGroupId() ); doc.addFieldExact( ArtifactKeys.GROUPID_EXACT, bytecode.getArtifact().getGroupId() ); doc.addFieldTokenized( ArtifactKeys.ARTIFACTID, bytecode.getArtifact().getArtifactId() ); doc.addFieldExact( ArtifactKeys.ARTIFACTID_EXACT, bytecode.getArtifact().getArtifactId() ); doc.addFieldTokenized( ArtifactKeys.VERSION, bytecode.getArtifact().getVersion() ); doc.addFieldExact( ArtifactKeys.VERSION_EXACT, bytecode.getArtifact().getVersion() ); doc.addFieldTokenized( ArtifactKeys.TYPE, bytecode.getArtifact().getType() ); doc.addFieldUntokenized( ArtifactKeys.CLASSIFIER, bytecode.getArtifact().getClassifier() ); // Bytecode Specifics doc.addFieldExact( BytecodeKeys.JDK, JavaArtifactHelper.getJavaDetails( bytecode.getArtifact() ).getJdk() ); doc.addFieldTokenized( BytecodeKeys.CLASSES, bytecode.getClasses() ); doc.addFieldTokenized( BytecodeKeys.METHODS, bytecode.getMethods() ); doc.addFieldTokenized( BytecodeKeys.FILES, bytecode.getFiles() ); return doc.getDocument(); }