class LocalSnapshotMetadataGenerator implements MetadataGenerator {

    private final Map<Object, LocalSnapshotMetadata> snapshots;

    private final Date timestamp;

    LocalSnapshotMetadataGenerator(RepositorySystemSession session, InstallRequest request) {
        timestamp = (Date) ConfigUtils.getObject(session, new Date(), "maven.startTime");

        snapshots = new LinkedHashMap<>();
    }

    @Override
    public Collection<? extends Metadata> prepare(Collection<? extends Artifact> artifacts) {<FILL_FUNCTION_BODY>}

    @Override
    public Artifact transformArtifact(Artifact artifact) {
        return artifact;
    }

    @Override
    public Collection<? extends Metadata> finish(Collection<? extends Artifact> artifacts) {
        return snapshots.values();
    }
}

        for (Artifact artifact : artifacts) {
            if (artifact.isSnapshot()) {
                Object key = LocalSnapshotMetadata.getKey(artifact);
                LocalSnapshotMetadata snapshotMetadata = snapshots.get(key);
                if (snapshotMetadata == null) {
                    snapshotMetadata = new LocalSnapshotMetadata(artifact, timestamp);
                    snapshots.put(key, snapshotMetadata);
                }
                snapshotMetadata.bind(artifact);
            }
        }

        return Collections.emptyList();
    
<no_super_class>