75 lines
2.4 KiB
C++
75 lines
2.4 KiB
C++
/*
|
|
==============================================================================
|
|
|
|
This file is part of the JUCE library.
|
|
Copyright (c) 2017 - ROLI Ltd.
|
|
|
|
JUCE is an open source library subject to commercial or open-source
|
|
licensing.
|
|
|
|
The code included in this file is provided under the terms of the ISC license
|
|
http://www.isc.org/downloads/software-support-policy/isc-license. Permission
|
|
To use, copy, modify, and/or distribute this software for any purpose with or
|
|
without fee is hereby granted provided that the above copyright notice and
|
|
this permission notice appear in all copies.
|
|
|
|
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
|
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
|
DISCLAIMED.
|
|
|
|
==============================================================================
|
|
*/
|
|
|
|
namespace juce
|
|
{
|
|
|
|
Identifier::Identifier() noexcept {}
|
|
Identifier::~Identifier() noexcept {}
|
|
|
|
Identifier::Identifier (const Identifier& other) noexcept : name (other.name) {}
|
|
|
|
Identifier::Identifier (Identifier&& other) noexcept : name (std::move (other.name)) {}
|
|
|
|
Identifier& Identifier::operator= (Identifier&& other) noexcept
|
|
{
|
|
name = std::move (other.name);
|
|
return *this;
|
|
}
|
|
|
|
Identifier& Identifier::operator= (const Identifier& other) noexcept
|
|
{
|
|
name = other.name;
|
|
return *this;
|
|
}
|
|
|
|
Identifier::Identifier (const String& nm)
|
|
: name (StringPool::getGlobalPool().getPooledString (nm))
|
|
{
|
|
// An Identifier cannot be created from an empty string!
|
|
jassert (nm.isNotEmpty());
|
|
}
|
|
|
|
Identifier::Identifier (const char* nm)
|
|
: name (StringPool::getGlobalPool().getPooledString (nm))
|
|
{
|
|
// An Identifier cannot be created from an empty string!
|
|
jassert (nm != nullptr && nm[0] != 0);
|
|
}
|
|
|
|
Identifier::Identifier (String::CharPointerType start, String::CharPointerType end)
|
|
: name (StringPool::getGlobalPool().getPooledString (start, end))
|
|
{
|
|
// An Identifier cannot be created from an empty string!
|
|
jassert (start < end);
|
|
}
|
|
|
|
Identifier Identifier::null;
|
|
|
|
bool Identifier::isValidIdentifier (const String& possibleIdentifier) noexcept
|
|
{
|
|
return possibleIdentifier.isNotEmpty()
|
|
&& possibleIdentifier.containsOnly ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-:#@$%");
|
|
}
|
|
|
|
} // namespace juce
|