@Value.Lazy Optional<DeclaringPackage> namedParentPackage() { String parentPackageName = SourceNames.parentPackageName(element()); if (!parentPackageName.isEmpty()) { @Nullable PackageElement parentPackage = environment().processing().getElementUtils().getPackageElement(parentPackageName); if (parentPackage != null) { return Optional.of( interner() .forPackage( ImmutableProto.DeclaringPackage.builder() .environment(environment()) .interner(interner()) .element(parentPackage) .build())); } } return Optional.absent(); }