class DefaultArtifactFactory implements ArtifactFactory {
    @Override
    public Artifact create(@Nonnull ArtifactFactoryRequest request) {<FILL_FUNCTION_BODY>}
}

        nonNull(request, "request");
        InternalSession session = InternalSession.from(request.getSession());
        ArtifactType type = null;
        if (request.getType() != null) {
            type = session.getSession().getArtifactTypeRegistry().get(request.getType());
        }
        String str1 = request.getClassifier();
        String classifier =
                str1 != null && !str1.isEmpty() ? request.getClassifier() : type != null ? type.getClassifier() : null;
        String str = request.getExtension();
        String extension =
                str != null && !str.isEmpty() ? request.getExtension() : type != null ? type.getExtension() : null;
        return new DefaultArtifact(
                session,
                new org.eclipse.aether.artifact.DefaultArtifact(
                        request.getGroupId(),
                        request.getArtifactId(),
                        classifier,
                        extension,
                        request.getVersion(),
                        type));
    
<no_super_class>