@Override public void visitPackage(final String packaze) { CheckMethodAdapter.checkInternalName(Opcodes.V9, packaze, "module package"); super.visitPackage(packaze); }
@Override public void visitMainClass(final String mainClass) { // Modules can only appear in V9 or more classes. CheckMethodAdapter.checkInternalName(Opcodes.V9, mainClass, "module main class"); super.visitMainClass(mainClass); }
@Override public void visitPackage(final String packaze) { CheckMethodAdapter.checkInternalName(Opcodes.V9, packaze, "module package"); super.visitPackage(packaze); }
@Override public void visitMainClass(final String mainClass) { // Modules can only appear in V9 or more classes. CheckMethodAdapter.checkInternalName(Opcodes.V9, mainClass, "module main class"); super.visitMainClass(mainClass); }
@Override public void visitClassType(final String name) { if (type != TYPE_SIGNATURE || state != EMPTY) { throw new IllegalStateException(); } CheckMethodAdapter.checkInternalName(name, "class name"); state = CLASS_TYPE; if (sv != null) { sv.visitClassType(name); } }
@Override public void visitProvide(final String service, final String... providers) { checkVisitEndNotCalled(); CheckMethodAdapter.checkInternalName(Opcodes.V9, service, "service"); providedServices.checkNameNotAlreadyDeclared(service); if (providers == null || providers.length == 0) { throw new IllegalArgumentException("Providers cannot be null or empty"); } for (String provider : providers) { CheckMethodAdapter.checkInternalName(Opcodes.V9, provider, "provider"); } super.visitProvide(service, providers); }
@Override public void visitProvide(final String service, final String... providers) { checkVisitEndNotCalled(); CheckMethodAdapter.checkInternalName(Opcodes.V9, service, "service"); providedServices.checkNameNotAlreadyDeclared(service); if (providers == null || providers.length == 0) { throw new IllegalArgumentException("Providers cannot be null or empty"); } for (String provider : providers) { CheckMethodAdapter.checkInternalName(Opcodes.V9, provider, "provider"); } super.visitProvide(service, providers); }
@Override public void visitNestHost(final String nestHost) { checkState(); CheckMethodAdapter.checkInternalName(version, nestHost, "nestHost"); if (visitNestHostCalled) { throw new IllegalStateException("visitNestHost can be called only once."); } if (nestMemberPackageName != null) { throw new IllegalStateException("visitNestHost and visitNestMember are mutually exclusive."); } visitNestHostCalled = true; super.visitNestHost(nestHost); }
@Override public void visitNestHost(final String nestHost) { checkState(); CheckMethodAdapter.checkInternalName(version, nestHost, "nestHost"); if (visitNestHostCalled) { throw new IllegalStateException("visitNestHost can be called only once."); } if (nestMemberPackageName != null) { throw new IllegalStateException("visitNestHost and visitNestMember are mutually exclusive."); } visitNestHostCalled = true; super.visitNestHost(nestHost); }
@Override public void visitTypeInsn(final int opcode, final String type) { checkVisitCodeCalled(); checkVisitMaxsNotCalled(); checkOpcodeMethod(opcode, Method.VISIT_TYPE_INSN); checkInternalName(version, type, "type"); if (opcode == Opcodes.NEW && type.charAt(0) == '[') { throw new IllegalArgumentException("NEW cannot be used to create arrays: " + type); } super.visitTypeInsn(opcode, type); ++insnCount; }
@Override public void visitTypeInsn(final int opcode, final String type) { checkVisitCodeCalled(); checkVisitMaxsNotCalled(); checkOpcodeMethod(opcode, Method.VISIT_TYPE_INSN); checkInternalName(version, type, "type"); if (opcode == Opcodes.NEW && type.charAt(0) == '[') { throw new IllegalArgumentException("NEW cannot be used to create arrays: " + type); } super.visitTypeInsn(opcode, type); ++insnCount; }
@Override public void visitTypeInsn(final int opcode, final String type) { checkStartCode(); checkEndCode(); checkOpcode(opcode, 3); checkInternalName(type, "type"); if (opcode == Opcodes.NEW && type.charAt(0) == '[') { throw new IllegalArgumentException( "NEW cannot be used to create arrays: " + type); } super.visitTypeInsn(opcode, type); ++insnCount; }
@Override public void visitUse(final String service) { checkVisitEndNotCalled(); CheckMethodAdapter.checkInternalName(Opcodes.V9, service, "service"); usedServices.checkNameNotAlreadyDeclared(service); super.visitUse(service); }
@Override public void visitUse(final String service) { checkVisitEndNotCalled(); CheckMethodAdapter.checkInternalName(Opcodes.V9, service, "service"); usedServices.checkNameNotAlreadyDeclared(service); super.visitUse(service); }
@Override public void visitFieldInsn(final int opcode, final String owner, final String name, final String desc) { checkStartCode(); checkEndCode(); checkOpcode(opcode, 4); checkInternalName(owner, "owner"); checkUnqualifiedName(version, name, "name"); checkDesc(desc, false); super.visitFieldInsn(opcode, owner, name, desc); ++insnCount; }
@Override public void visitFieldInsn( final int opcode, final String owner, final String name, final String descriptor) { checkVisitCodeCalled(); checkVisitMaxsNotCalled(); checkOpcodeMethod(opcode, Method.VISIT_FIELD_INSN); checkInternalName(version, owner, "owner"); checkUnqualifiedName(version, name, "name"); checkDescriptor(version, descriptor, false); super.visitFieldInsn(opcode, owner, name, descriptor); ++insnCount; }
@Override public void visitFieldInsn( final int opcode, final String owner, final String name, final String descriptor) { checkVisitCodeCalled(); checkVisitMaxsNotCalled(); checkOpcodeMethod(opcode, Method.VISIT_FIELD_INSN); checkInternalName(version, owner, "owner"); checkUnqualifiedName(version, name, "name"); checkDescriptor(version, descriptor, false); super.visitFieldInsn(opcode, owner, name, descriptor); ++insnCount; }
@Override public void visitOpen(final String packaze, final int access, final String... modules) { checkVisitEndNotCalled(); if (isOpen) { throw new UnsupportedOperationException("An open module can not use open directive"); } CheckMethodAdapter.checkInternalName(Opcodes.V9, packaze, "package name"); openedPackages.checkNameNotAlreadyDeclared(packaze); CheckClassAdapter.checkAccess(access, Opcodes.ACC_SYNTHETIC | Opcodes.ACC_MANDATED); if (modules != null) { for (String module : modules) { CheckClassAdapter.checkFullyQualifiedName(Opcodes.V9, module, "module open to"); } } super.visitOpen(packaze, access, modules); }
@Override public void visitExport(final String packaze, final int access, final String... modules) { checkVisitEndNotCalled(); CheckMethodAdapter.checkInternalName(Opcodes.V9, packaze, "package name"); exportedPackages.checkNameNotAlreadyDeclared(packaze); CheckClassAdapter.checkAccess(access, Opcodes.ACC_SYNTHETIC | Opcodes.ACC_MANDATED); if (modules != null) { for (String module : modules) { CheckClassAdapter.checkFullyQualifiedName(Opcodes.V9, module, "module export to"); } } super.visitExport(packaze, access, modules); }
@Override public void visitExport(final String packaze, final int access, final String... modules) { checkVisitEndNotCalled(); CheckMethodAdapter.checkInternalName(Opcodes.V9, packaze, "package name"); exportedPackages.checkNameNotAlreadyDeclared(packaze); CheckClassAdapter.checkAccess(access, Opcodes.ACC_SYNTHETIC | Opcodes.ACC_MANDATED); if (modules != null) { for (String module : modules) { CheckClassAdapter.checkFullyQualifiedName(Opcodes.V9, module, "module export to"); } } super.visitExport(packaze, access, modules); }