fix(lexicon): renaming and minor fixes

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
pull/49399/head
Maxence Lange 2024-12-12 17:37:14 +07:00
parent 96586ba709
commit 815991741d
5 changed files with 15 additions and 19 deletions

@ -436,7 +436,7 @@ class AppConfig implements IAppConfig {
int $type, int $type,
): string { ): string {
$this->assertParams($app, $key, valueType: $type); $this->assertParams($app, $key, valueType: $type);
if (!$this->compareRegisteredConfigValues($app, $key, $lazy, $type, $default)) { if (!$this->matchAndApplyLexiconDefinition($app, $key, $lazy, $type, $default)) {
return $default; // returns default if strictness of lexicon is set to WARNING (block and report) return $default; // returns default if strictness of lexicon is set to WARNING (block and report)
} }
$this->loadConfig($app, $lazy); $this->loadConfig($app, $lazy);
@ -730,7 +730,7 @@ class AppConfig implements IAppConfig {
int $type, int $type,
): bool { ): bool {
$this->assertParams($app, $key); $this->assertParams($app, $key);
if (!$this->compareRegisteredConfigValues($app, $key, $lazy, $type)) { if (!$this->matchAndApplyLexiconDefinition($app, $key, $lazy, $type)) {
return false; // returns false as database is not updated return false; // returns false as database is not updated
} }
$this->loadConfig(null, $lazy); $this->loadConfig(null, $lazy);
@ -1573,13 +1573,13 @@ class AppConfig implements IAppConfig {
} }
/** /**
* verify and compare current use of config values with defined lexicon * match and apply current use of config values with defined lexicon
* *
* @throws AppConfigUnknownKeyException * @throws AppConfigUnknownKeyException
* @throws AppConfigTypeConflictException * @throws AppConfigTypeConflictException
* @return bool TRUE if everything is fine compared to lexicon or lexicon does not exist * @return bool TRUE if everything is fine compared to lexicon or lexicon does not exist
*/ */
private function compareRegisteredConfigValues( private function matchAndApplyLexiconDefinition(
string $app, string $app,
string $key, string $key,
bool &$lazy, bool &$lazy,

@ -711,7 +711,7 @@ class UserConfig implements IUserConfig {
ValueType $type, ValueType $type,
): string { ): string {
$this->assertParams($userId, $app, $key); $this->assertParams($userId, $app, $key);
if (!$this->compareRegisteredConfigValues($app, $key, $lazy, $type, default: $default)) { if (!$this->matchAndApplyLexiconDefinition($app, $key, $lazy, $type, default: $default)) {
return $default; // returns default if strictness of lexicon is set to WARNING (block and report) return $default; // returns default if strictness of lexicon is set to WARNING (block and report)
} }
$this->loadConfig($userId, $lazy); $this->loadConfig($userId, $lazy);
@ -1046,7 +1046,7 @@ class UserConfig implements IUserConfig {
ValueType $type, ValueType $type,
): bool { ): bool {
$this->assertParams($userId, $app, $key); $this->assertParams($userId, $app, $key);
if (!$this->compareRegisteredConfigValues($app, $key, $lazy, $type, $flags)) { if (!$this->matchAndApplyLexiconDefinition($app, $key, $lazy, $type, $flags)) {
return false; // returns false as database is not updated return false; // returns false as database is not updated
} }
$this->loadConfig($userId, $lazy); $this->loadConfig($userId, $lazy);
@ -1816,12 +1816,12 @@ class UserConfig implements IUserConfig {
} }
/** /**
* verify and compare current use of config values with defined lexicon * match and apply current use of config values with defined lexicon
* *
* @throws UnknownKeyException * @throws UnknownKeyException
* @throws TypeConflictException * @throws TypeConflictException
*/ */
private function compareRegisteredConfigValues( private function matchAndApplyLexiconDefinition(
string $app, string $app,
string $key, string $key,
bool &$lazy, bool &$lazy,
@ -1837,7 +1837,7 @@ class UserConfig implements IUserConfig {
/** @var ConfigLexiconEntry $configValue */ /** @var ConfigLexiconEntry $configValue */
$configValue = $configDetails['entries'][$key]; $configValue = $configDetails['entries'][$key];
if ($type === ValueType::MIXED) { if ($type === ValueType::MIXED) {
$type = $configValue->getValueType()->value; // we overwrite if value was requested as mixed $type = $configValue->getValueType(); // we overwrite if value was requested as mixed
} elseif ($configValue->getValueType() !== $type) { } elseif ($configValue->getValueType() !== $type) {
throw new TypeConflictException('The user config key ' . $app . '/' . $key . ' is typed incorrectly in relation to the config lexicon'); throw new TypeConflictException('The user config key ' . $app . '/' . $key . ' is typed incorrectly in relation to the config lexicon');
} }

@ -174,7 +174,7 @@ class ConfigLexiconEntry {
* @experimental 31.0.0 * @experimental 31.0.0
*/ */
public function isFlagged(int $flag): bool { public function isFlagged(int $flag): bool {
return (bool)($flag & $this->getFlags()); return (($flag & $this->getFlags()) === $flag);
} }
/** /**

@ -18,13 +18,13 @@ namespace NCU\Config\Lexicon;
* *
* @experimental 31.0.0 * @experimental 31.0.0
*/ */
enum ConfigLexiconStrictness: int { enum ConfigLexiconStrictness {
/** @experimental 31.0.0 */ /** @experimental 31.0.0 */
case IGNORE = 0; // fully ignore case IGNORE; // fully ignore
/** @experimental 31.0.0 */ /** @experimental 31.0.0 */
case NOTICE = 2; // ignore and report case NOTICE; // ignore and report
/** @experimental 31.0.0 */ /** @experimental 31.0.0 */
case WARNING = 3; // silently block (returns $default) and report case WARNING; // silently block (returns $default) and report
/** @experimental 31.0.0 */ /** @experimental 31.0.0 */
case EXCEPTION = 5; // block (throws exception) and report case EXCEPTION; // block (throws exception) and report
} }

@ -9,7 +9,6 @@ namespace Test;
use InvalidArgumentException; use InvalidArgumentException;
use OC\AppConfig; use OC\AppConfig;
use OC\AppFramework\Bootstrap\Coordinator;
use OCP\Exceptions\AppConfigTypeConflictException; use OCP\Exceptions\AppConfigTypeConflictException;
use OCP\Exceptions\AppConfigUnknownKeyException; use OCP\Exceptions\AppConfigUnknownKeyException;
use OCP\IAppConfig; use OCP\IAppConfig;
@ -29,7 +28,6 @@ class AppConfigTest extends TestCase {
protected IDBConnection $connection; protected IDBConnection $connection;
private LoggerInterface $logger; private LoggerInterface $logger;
private ICrypto $crypto; private ICrypto $crypto;
private Coordinator $coordinator;
private array $originalConfig; private array $originalConfig;
@ -91,7 +89,6 @@ class AppConfigTest extends TestCase {
$this->connection = \OCP\Server::get(IDBConnection::class); $this->connection = \OCP\Server::get(IDBConnection::class);
$this->logger = \OCP\Server::get(LoggerInterface::class); $this->logger = \OCP\Server::get(LoggerInterface::class);
$this->crypto = \OCP\Server::get(ICrypto::class); $this->crypto = \OCP\Server::get(ICrypto::class);
$this->coordinator = \OCP\Server::get(Coordinator::class);
// storing current config and emptying the data table // storing current config and emptying the data table
$sql = $this->connection->getQueryBuilder(); $sql = $this->connection->getQueryBuilder();
@ -182,7 +179,6 @@ class AppConfigTest extends TestCase {
$this->connection, $this->connection,
$this->logger, $this->logger,
$this->crypto, $this->crypto,
$this->coordinator
); );
$msg = ' generateAppConfig() failed to confirm cache status'; $msg = ' generateAppConfig() failed to confirm cache status';