<commit_before>package org.opentosca.toscana.core.csar;


import org.opentosca.toscana.core.parse.CsarParser;
import org.opentosca.toscana.core.parse.InvalidCsarException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.InputStream;
import java.util.List;

//TODO Comment out once implementation is finished
//@Service
public class CsarServiceImpl implements CsarService {

    private final static Logger logger = LoggerFactory.getLogger(CsarService.class.getName());

    private final CsarDao csarDao;
    private final CsarParser csarParser;

    @Autowired
    public CsarServiceImpl(CsarDao dao, CsarParser parser) {
        this.csarDao = dao;
        this.csarParser = parser;
    }

    @Override
    public Csar submitCsar(String identifier, InputStream csarStream) {
        Csar csar = csarDao.create(identifier, csarStream);
        try {
            populateWithTemplate(csar);
        } catch (InvalidCsarException e) {
            logger.warn("Failed to submit csar", e);
            // TODO wait for 'csar state' discussion outcome. maybe cleanup disk and return null
            // TODO add test case
        }
        return csar;
    }

    private void populateWithTemplate(Csar csar) throws InvalidCsarException {
//		if (csar.getTemplate() == null) {
//			TServiceTemplate template = null;
//			template = csarParser.parse(csar);
//			csar.setTemplate(template);
//		}
    }

    @Override
    public void deleteCsar(Csar csar) {
        csarDao.delete(csar.getIdentifier());<commit_msg>enable template population<commit_after>package org.opentosca.toscana.core.csar;


import org.eclipse.winery.model.tosca.yaml.TServiceTemplate;
import org.opentosca.toscana.core.parse.CsarParser;
import org.opentosca.toscana.core.parse.InvalidCsarException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.InputStream;
import java.util.List;

public class CsarServiceImpl implements CsarService {

    private final static Logger logger = LoggerFactory.getLogger(CsarService.class.getName());

    private final CsarDao csarDao;
    private final CsarParser csarParser;

    @Autowired
    public CsarServiceImpl(CsarDao dao, CsarParser parser) {
        this.csarDao = dao;
        this.csarParser = parser;
    }

    @Override
    public Csar submitCsar(String identifier, InputStream csarStream) {
        Csar csar = csarDao.create(identifier, csarStream);
        try {
            populateWithTemplate(csar);
        } catch (InvalidCsarException e) {
            logger.warn("Failed to submit csar", e);
            // TODO wait for 'csar state' discussion outcome. maybe cleanup disk and return null
            // TODO add test case
        }
        return csar;
    }

    private void populateWithTemplate(Csar csar) throws InvalidCsarException {
        if (csar.getTemplate() == null) {
            TServiceTemplate template = csarParser.parse(csar);
            csar.setTemplate(template);
        }
    }

    @Override
    public void deleteCsar(Csar csar) {
        csarDao.delete(csar.getIdentifier());
{'fraction_non_alphanumeric': 0.08915211970074813, 'fraction_numerical': 0.0012468827930174563, 'mean_word_length': 3.1406451612903226, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5937563', 'n_tokens_mistral': 1000, 'n_tokens_neox': 965, 'n_words': 221}