public void renameProfile(int profileId, String newName, UserSession userSession) { checkPermission(userSession); DbSession session = myBatis.openSession(false); try { QualityProfileDto profileDto = findNotNull(profileId, session); String oldName = profileDto.getName(); QProfile profile = QProfile.from(profileDto); if (!oldName.equals(newName)) { checkNotAlreadyExists(newName, profile.language(), session); } profileDto.setName(newName); dao.update(session, profileDto); List<QProfile> children = profileLookup.children(profile, session); for (QProfile child : children) { dao.update(session, child.setParent(newName).toDto()); } propertiesDao.updateProperties( PROFILE_PROPERTY_PREFIX + profile.language(), oldName, newName, session); session.commit(); } finally { MyBatis.closeQuietly(session); } }
public QProfile get(String language, String name) { QualityProfileDto dto = qualityProfileDao.getByNameAndLanguage(name, language); if (dto == null) { return null; } return new org.sonar.batch.protocol.input.QProfile( dto.getKey(), dto.getName(), dto.getLanguage(), UtcDateUtils.parseDateTime(dto.getRulesUpdatedAt())); }
public QProfile newProfile( String name, String language, @Nullable String parent, boolean failIfAlreadyExists, UserSession userSession, DbSession session) { checkPermission(userSession); if (failIfAlreadyExists) { checkNotAlreadyExists(name, language, session); } QualityProfileDto dto = new QualityProfileDto() .setName(name) .setLanguage(language) .setParent(parent) .setVersion(1) .setUsed(false); dao.insert(session, dto); return QProfile.from(dto); }
public void analyse(Project project, SensorContext context) { List<QProfileWithId> profiles = Lists.newArrayList(); for (String language : fs.languages()) { QProfileWithId qProfile = (QProfileWithId) moduleQProfiles.findByLanguage(language); if (qProfile != null) { dao.updateUsedColumn(qProfile.id(), true); profiles.add(qProfile); } } UsedQProfiles used = UsedQProfiles.fromProfiles(profiles); Measure detailsMeasure = new Measure(CoreMetrics.QUALITY_PROFILES, used.toJSON()); context.saveMeasure(detailsMeasure); // For backward compatibility if (profiles.size() == 1) { QProfileWithId qProfile = profiles.get(0); Measure measure = new Measure(CoreMetrics.PROFILE, qProfile.name()).setValue((double) qProfile.id()); Measure measureVersion = new Measure(CoreMetrics.PROFILE_VERSION, qProfile.version().doubleValue()); context.saveMeasure(measure); context.saveMeasure(measureVersion); } }
private void checkNotAlreadyExists(String name, String language, DbSession session) { if (dao.selectByNameAndLanguage(name, language, session) != null) { throw new BadRequestException("quality_profiles.profile_x_already_exists", name); } }
private QualityProfileDto findNotNull(int profileId, DbSession session) { QualityProfileDto profile = dao.selectById(profileId, session); QProfileValidations.checkProfileIsNotNull(profile); return profile; }